Pertanyaan ini sudah lama, tapi menurut saya jawabannya salah. ps dan top menghitung penggunaan CPU menggunakan metode yang berbeda.
dari man top:
- %CPU -- Penggunaan CPU Bagian tugas dari waktu CPU yang telah berlalu sejak pembaruan layar terakhir , dinyatakan sebagai persentase dari total waktu CPU.
dari man ps:
Penggunaan CPU saat ini dinyatakan sebagai persentase waktu yang dihabiskan untuk menjalankan selama masa proses .
Jadi, katakanlah Anda memiliki proses yang dimulai seminggu yang lalu dan selama waktu itu rata-rata menggunakan 2,2% waktu CPU. Jika tiba-tiba menjadi intensif CPU (terus-menerus mengkonsumsi 100%) - melihat ps Anda akan mengamati 2,2% yang sama untuk beberapa jam pertama.
Alasan yang paling mungkin adalah top
menampilkan nilai persentase sebagai persentase dari tunggal CPU sementara ps
menunjukkan persentase total daya CPU yang tersedia. Coba jalankan di atas dan tekan Shift Saya saat sedang berjalan untuk menunjukkan persentase semua core.
Jika ini adalah cluster server dengan banyak CPU, yang Anda gambarkan adalah perilaku normal. Lihat juga di sini.