top
menunjukkan penggunaan CPU rata-rata selama waktu puncak sekitar 20% sementara pemantauan CloudWatch menunjukkan penggunaan CPU rata-rata 40%. Apa yang menyebabkan perbedaan ini?
top
menunjukkan penggunaan CPU rata-rata selama waktu puncak sekitar 20% sementara pemantauan CloudWatch menunjukkan penggunaan CPU rata-rata 40%. Apa yang menyebabkan perbedaan ini?
Jawaban:
Pengamatan yang sangat bagus dan kami juga mengalami hal ini. Inilah yang saya temukan:
Berhati-hatilah mengukur penggunaan CPU dari dalam instance EC2. Adalah mungkin untuk melihat penggunaan CPU di bawah 100% —dan belum sepenuhnya maksimal. Percayalah: pernah ke sana, lakukan itu. (CloudWatch CPUUtilization, omong-omong, diukur dari luar mesin virtual dan selalu benar.)
Ada deskripsi yang sangat baik dari semuanya di sini: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/
Pada contoh di atas, instance m1.small EC2 dialokasikan 0,4 unit prosesor dan karenanya 40% CPU sibuk berarti persentase penggunaan inti yang mendasarinya. Namun karena 40% adalah share CPU maksimum yang dapat dialokasikan untuk VM ini, penggunaan CPU yang efektif adalah 40% / 40% = 100%. Yang merupakan nomor yang ditampilkan oleh CloudWatch.
Jika Anda bertanya-tanya dari mana 40% berasal, matematika itu cukup sederhana. Sistem linux m1.small berhak atas 1 unit komputasi EC2 yang menyediakan kapasitas CPU yang setara dengan prosesor 1.0-1.2.2 GHz 2007 Opteron atau 2007 Xeon. Karena VM berjalan pada mesin dengan kecepatan clock 2,6 GHz, VM berhak atas 38,4% -46,2% berbagi prosesor pada simpul XEN khusus ini. Anda dapat menjalankan perintah cat / proc / cpuinfo untuk mengetahui arsitektur CPU di belakang instance EC2 Anda.
Berikan perhatian khusus pada petunjuk tentang cara menangani alat yang tidak tahu tentang matematika khusus:
Opsi lain yang dapat digunakan untuk retrofit alat pemantauan berbasis agen atau SNMP yang ada, yang tidak berintegrasi dengan CloudWatch, adalah menggunakan metrik idle CPU. Yang perlu Anda lakukan adalah menulis kembali aturan untuk mengukur CPU idle bukan CPU sibuk. Misalnya jika Anda memiliki ambang> 75% yang ditentukan untuk sibuk CPU, buat aturan <25% untuk CPU idle. Jika CPU idle 0, maka server Anda terikat CPU.
Sangat sederhana. Sangat bagus.
Ketika Anda menjalankan teratas dalam instance EC2, ia mengukur penggunaan CPU dari mesin core fisik yang menjalankan instance Anda dan lainnya. Penggunaan ini salah jika Anda ingin mengukur penggunaan cpu dari instance Anda (unit komputasi EC2 yang ditugaskan untuk instance Anda).
Itulah sebabnya metrik cloudwatch nyata karena diukur eksternal dari instance untuk unit komputasi EC2 yang ditetapkan untuk instance Anda saja.
Lihat di sini - https://forums.aws.amazon.com/thread.jspa?threadID=99993