Mengapa pemantauan EC2 menunjukkan 100% CPU dan hanya 20% teratas?

10

Saya menjalankan skrip python pada instance EC2 yang menyisipkan baris dalam database pada instance lain. Dalam pemantauan EC2 saya melihat pemanfaatan cpu 100%, sedangkan top hanya menunjukkan 20% untuk proses python. Apa yang hilang dari atas? Overhead jaringan?

RickyA
sumber
Bagaimana dengan semua proses lainnya ?
Ladadadada
Pada pemanfaatan sekitar 0%
RickyA
Saya juga dalam dillima, saya mengirim reprot perintah TOP saya ke klien :)
Manish Shrivastava

Jawaban:

18

Data yang diekspos oleh topsering tidak memadai atau menyesatkan dalam lingkungan tervirtualisasi seperti Amazon EC2 dan persentase yang dilaporkan tergantung pada jenis instance Anda dan pemanfaatan inti prosesor yang mendasarinya (yang biasanya tidak cocok dengan perangkat keras virtual yang Anda sajikan dari hypervisor), di antaranya hal-hal lain - apa yang Anda lihat kemungkinan besar disebabkan oleh masing-masing waktu mencuri CPU seperti yang terekspos di sebagian besar alat pemantauan Unix / Linux saat ini - lihat misalnya kolom% steal atau st in saratau top:

st - Steal Time
Jumlah CPU 'dicuri' dari mesin virtual ini oleh hypervisor untuk tugas lain (seperti menjalankan mesin virtual lain).

Posting blog pemantauan EC2: kasus CPU curian memberikan eksplorasi dan ilustrasi yang bagus tentang topik ini:

Ketika perintah teratas menampilkan 40% CPU sibuk tetapi CloudWatch mengatakan server maksimal 100% - sisi mana yang Anda ambil? Jawabannya sederhana (CloudWatch benar, atas tidak) [...]

Harap dicatat bahwa metrik hypervisor ini tampaknya (mudah) dapat diakses hanya pada sistem Unix / Linux, tetapi tampaknya tidak dapat diamati pada Windows (belum), lihat pertanyaan saya Apakah ada Windows yang setara dengan Unix 'CPU steal time'? untuk lebih lanjut mengenai masalah ini.

Steffen Opel
sumber
2
Terima kasih untuk blogpostnya. Itu benar-benar membuatnya jelas. Sangat bagus untuk mengetahui hal ini karena saya akan meluncurkan Ganglia, dan akan sangat memalukan untuk mengukur metrik yang salah. Ukur% idletime!
RickyA
Dalam kasus saya, cloudwatch juga melaporkan penggunaan jaringan 3mb / s, tetapi ketika saya melihat di server saya (dengan iftop, iptraf, netstat, dll.) Saya melihat bahwa satu-satunya hal dengan koneksi jaringan adalah ssh saya ke server. Yang saya benar-benar ragu menggunakan 3mb / s ...
Benubird
-2

Amazon mungkin memeriksa beban dan tidak ada persentase penggunaan dari TOP. Jika Anda memiliki dua proses pada cpu, mereka dapat digunakan pada 20% tetapi Anda dapat memuat 2.

MartinSVK
sumber
Saya tidak yakin apa yang Anda maksud dengan memuat 2 ...
RickyA
Anda dapat memiliki beban sistem pada 2. Dua proses pada CPU tetapi dengan pemanfaatan rendah.
MartinSVK