mengapa htop meter menunjukkan> 90% sedangkan tabel adalah 0,0%?

12

Mengapa meter kemajuan melintasi bagian atas layar dalam htopmenunjukkan penggunaan CPU secara konsisten di atas> 90% sedangkan angka-angka dalam tabel di bawah ini menunjukkan sistem yang hampir menganggur dengan penggunaan CPU dan rata-rata beban 0,0%?

ambil sebagian layar htop

matt wilkie
sumber
1
Saya memiliki masalah yang sama persis dan saya juga menggunakan VPS Dreamhost (server pribadi virtual).
dualitas_
BTW, lihat contoh saya, ini bahkan lebih buruk: demo.ddesign.si/temp/dh3.png
duality_

Jawaban:

6

htoptidak menyadarinya sedang berjalan di lingkungan virtual tingkat kernel ( Dreamhost VPS menggunakan teknologi VServer ). Ini kemudian menunjukkan penggunaan CPU untuk semua instance OS yang berbagi kernel yang sama, bukan hanya milik Anda.

Lihat vtopoutput yang menunjukkan semua proses berbagi CPU, bukan hanya yang ada di wadah Anda.

Jika vtoptidak diinstal, dan ini mungkin diharapkan untuk solusi komersial karena orang tidak ingin pelanggan melihat proses apa yang sedang dijalankan pelanggan lain, tidak ada cara untuk memperbaiki masalah dari dalam wadah Anda, kecuali menambal topsumber untuk menghitung Penggunaan CPU bukannya mendapatkannya dari statistik kernel.

Mungkin melakukannya dengan merangkum penggunaan CPU dari semua proses yang berjalan di VServer Anda, misalnya:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'
Jlliagre
sumber
+1 untuk penjelasannya; topmelaporkan mirip dengan htop di mesin ini. Vtop tidak diuji karena tidak diinstal. Menandai ini sebagai diterima karena itu menjawab "mengapa?", Meskipun itu tidak membahas yang tersirat "dan apa yang dapat dilakukan tentang hal itu?", Karena itu tidak terucapkan
matt wilkie
4

Inkonsistensi semacam ini biasanya menunjukkan penggunaan prosesor yang tinggi oleh utas kernel, yang tidak ditampilkan htopsecara default. Untuk menampilkannya, htopmasuk ke Setup, lalu Display options, dan hapus centang Hide kernel threads. Ini seharusnya memungkinkan Anda untuk melihat utas yang bertanggung jawab.

Anda juga dapat menonaktifkan perilaku ini dengan mengatur hide_kernel_threadske 0 in ~/.htoprc.

Chris Down
sumber
2
terimakasih Chris. Saya melakukan itu tetapi nilai tabel masih 0%. Mungkin ini sesuatu yang aneh untuk dijalankan di mesin virtual? Tuan rumahnya adalah Virtual Private Server (di Dreamhost.com).
matt wilkie
Bagi saya, ini adalah jawaban yang lebih benar. Saya memiliki proses yang mengambil banyak CPU dari kernel, dan itu tidak muncul dalam proses ruang pengguna.
Patrick Chu
... kecuali bahwa meter CPU HTop menampilkan waktu kernel berwarna merah dan waktu pengguna berwarna hijau, dan kami dapat dengan jelas melihatnya hampir semuanya hijau.
MathematicalOrchid
1

Coba luncurkan htopbersama sudo. Anda memerlukan akses root untuk melihat utas aktif di tabel.

HAL 9001
sumber
Saya tidak tahu seberapa baik ini berfungsi pada lingkungan tervirtualisasi biasa, jika ada yang biasa, tetapi tidak berfungsi pada VPS dreamhost.
matt wilkie