Saya memiliki mesin dengan Intel(R) Xeon(R) CPU E5520
terlihat sebagai 16 core logis (8 dengan HT). Jika saya menjalankan sesuatu untuk memakan waktu CPU (single threaded) dengan benar melaporkan penggunaan CPU 100% untuk proses tetapi hanya sekitar 3-4% total penggunaan.
Cpu(s): 3.6%us, 0.0%sy, 0.0%ni, 96.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1567 www 20 0 65632 84 4 R 100 0.0 0:05.96 burnMMX
Tentunya penggunaan yang dilaporkan harus ~ 6,25% (1 dari 16 core).
- Apakah itu salah karena ini adalah mesin virtual?
- Bagaimana saya bisa menghitung nilai yang benar?
atop
dan mengubah bagian atas untuk melaporkan penggunaan setiap CPU secara terpisah (dengan menekan1
)Jawaban:
top
dalam ringkasan melaporkan penggunaan relatif terhadap CPU dengan semua core ditambahkan. Di sisi lain, ketika Anda melihat dalam daftar proses, laporan teratas persen dirujuk ke satu inti (nyata atau HT). Coba jalankan proses dengan 4 utas yang dapat memakan hingga 4 inti CPU, Anda akan menemukannya menggunakan CPU 400%.Saya tidak tahu mengapa, tapi itulah cara
top
kerjanya pada semua sistem Linux yang pernah saya lihat.sumber
Paling sering
top
bekerja dalam mode 'Irix' secara default, sama seperti yang Anda gambarkan. Jika Anda ingin mendapatkan persentase dari total kemampuan CPU (yaitu ketika jumlah penggunaan CPU yang mungkin bertambah hingga 100% dan tidak cpu_cores_number * 100%), cukup ganti mode 'Irix' dengan menekanI
.sumber