Kami mengalami perilaku aneh di mana kami melihat utilisasi CPU tinggi tetapi rata-rata beban cukup rendah.
Perilaku tersebut paling baik digambarkan oleh grafik berikut dari sistem pemantauan kami.
Pada sekitar 11:57 pemanfaatan CPU meningkat dari 25% menjadi 75%. Rata-rata beban tidak berubah secara signifikan.
Kami menjalankan server dengan 12 core dengan masing-masing 2 hyper thread. OS melihat ini sebagai 24 CPU.
Data pemanfaatan CPU dikumpulkan dengan menjalankan /usr/bin/mpstat 60 1
setiap menit. Data untuk all
baris dan %usr
kolom ditunjukkan pada bagan di atas. Saya yakin ini memang menunjukkan rata-rata per data CPU, bukan pemanfaatan "ditumpuk". Sementara kami melihat utilisasi 75% dalam bagan, kami melihat proses yang menunjukkan untuk menggunakan sekitar 2000% "susun" CPU di top
.
Angka rata-rata beban diambil dari /proc/loadavg
setiap menit.
uname -a
memberi:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Dist Linux adalah Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kami menjalankan beberapa aplikasi web Java di bawah beban yang cukup berat pada mesin, pikir 100 permintaan / s per mesin.
Jika saya menginterpretasikan data penggunaan CPU dengan benar, ketika kami memiliki utilisasi CPU 75% itu berarti CPU kami menjalankan proses 75% dari waktu rata-rata. Namun, jika CPU kita sibuk 75% dari waktu, bukankah seharusnya kita melihat rata-rata beban yang lebih tinggi? Bagaimana mungkin CPU sibuk 75% sementara kami hanya memiliki 2-4 pekerjaan dalam antrian?
Apakah kita mengartikan data kita dengan benar? Apa yang dapat menyebabkan perilaku ini?