GNU/Linux >> Belajar Linux >  >> Linux

ps dan top memberikan penggunaan CPU yang berbeda

Pertanyaan ini sudah lama, tapi menurut saya jawabannya salah. ps dan top menghitung penggunaan CPU menggunakan metode yang berbeda.

dari man top:

  1. %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.


Linux
  1. Temukan 10 Proses Berjalan Teratas berdasarkan Memori dan Penggunaan CPU

  2. Memecahkan masalah penggunaan CPU yang tinggi di Windows Server

  3. Cara mendapatkan penggunaan CPU

  1. Temukan Proses Berjalan Teratas berdasarkan Memori dan Penggunaan CPU Tertinggi di Linux

  2. Memahami Berbagai Klasifikasi Perintah Shell dan Penggunaannya di Linux

  3. Perhitungan akurat penggunaan CPU diberikan dalam persentase di Linux?

  1. Cara Menemukan Proses Berjalan Teratas berdasarkan Memori dan Penggunaan CPU

  2. Dapatkan penggunaan CPU dalam skrip shell?

  3. Ambil penggunaan CPU dan penggunaan memori dari satu proses di Linux?