Bagaimana cara menunjukkan lima proses memakan CPU dengan ps?
102
Mengapa menggunakan ps
ketika Anda bisa melakukannya dengan mudah dengan top
perintah?
Jika Anda harus menggunakan ps
, coba ini:
ps aux | sort -nrk 3,3 | head -n 5
Jika Anda menginginkan sesuatu yang benar-benar 'top'esq dengan pembaruan konstan, gunakan arloji
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
sebenarnya bekerja.top
membaca daftar proses dan menampilkan hasilnya sendiri tanpa menyalurkan ke proses lainJawaban yang benar adalah :
Jadi, Anda dapat menentukan kolom tanpa mengganggu penyortiran.
Ex:
Catatan untuk MAC OS X : Di Mac OS X,
ps
tidak dikenali--sort
, tetapi menawarkan-r
untuk mengurutkan berdasarkan penggunaan CPU saat ini. Jadi, untuk Mac OS X Anda dapat menggunakan:sumber
bash
(x2, atauhead
juga)ps
...sort
, yang kedua menunjukkan bagaimana menentukan kolom tanpa mengganggu penyortiran. Ketika menjelaskan sesuatu .. itu selalu lebih baik untuk ringkas dan menjelaskan satu per satu.Tergantung pada kebutuhan Anda, Anda mungkin menemukan ini sedikit lebih mudah dibaca:
output sampel:
(isiannya adalah% CPU, PID, USER, COMMAND)
sumber
Saya tidak berpikir
ps
apa yang Anda cari. Sudahkah Anda melihat output daritop
?Jika Anda memiliki GNU-Top, coba gunakan mode batch untuk memuntahkan daftar proses yang diurutkan berdasarkan penggunaan CPU dan menggunakan head / tail untuk mendapatkan 5 baris teratas (8 yang pertama adalah header):
BSD top tampaknya berperilaku berbeda dan tidak memiliki mode non-interaktif, jadi gunakan salah satu
ps
solusi berbasis lainnya .sumber
top -o cpu -n 5
cara mencapai hal yang sama. Apakah ada yang tahu? Sayatop
berbeda dengan Andatop
.-o
dan-n
menetapkan berapa kali menyegarkan tampilan sebelum berhenti.top
Tampaknya saya tidak memiliki mode batch, yang cukup membatasi. Harus ada beberapa cara pemipaantop
ke perintah lain. Saya akan melakukan riset.top
bekerja seperti yang dijelaskan sore ini. Tepuk tangan.Satu liner tercepat yang saya temukan untuk ini (catatan 6 karena header menambahkan):
sumber
Perhatikan bahwa versi ps saat ini memiliki kemampuan pengurutan di dalamnya, berdasarkan kode bidang (diberikan pada halaman manual ps). Kode bidang untuk penggunaan prosesor adalah "c". Anda dapat menggunakan
--sort c
di akhir perintah ps misalnyaps aux --sort c
Ini akan menempatkan proses menggunakan cpu terbanyak di bagian bawah daftar. Membalik urutan daftar dengan menambahkan minus ke kode bidang yang digunakan untuk menyortir misalnya
ps aux --sort -c
sumber
Untuk menambahkan poin ke jawaban berharga lainnya, saya lebih suka:
Ini juga mencetak header, yang bagus.
Berikut
k
ini identik dengan--sort
danc
menentukan bidang penggunaan CPU (alias%cpu
) untuk pengurutan, sedangkan-
untuk pengurutan terbalik.Anda dapat menambahkan lebih penentu dipisahkan oleh
,
, specifier lain yang mungkin adalah:%mem
,args
,bsdstart
,pid
,gid
,uid
... yang dapat Anda temukan daftar lengkap di STANDAR specifier FORMAT bagian dari halaman manual. Sebagai contoh:akan mencetak 10 proses dengan id grup tertinggi, diurutkan secara internal berdasarkan penggunaan memori.
sumber
Alat baris perintah
ps
memiliki opsi pengurutannya sendiri, jadi saya lebih suka:Anda dapat menambahkan kolom yang Anda inginkan. Lihat opsi apa yang tersedia melalui
ps
halaman manual.sumber
top
pada Mac OS X memiliki opsi mode logging dalam bentuktop -l numberOfSamples
(yang tampaknya setara dengan mode batch GNUtop
). Namun, perlu untuk memiliki setidaknya dua sampel karena "sampel pertama yang ditampilkan akan menampilkan% CPU yang tidak valid untuk setiap proses, karena dihitung menggunakan delta antar sampel" (man 1 top
).sumber
top
akan menampilkan apa yang menggunakan CPU Anda. Jika Anda telah menginstalnya,htop
memungkinkan Anda untuk mengontrol dengan lebih baik, termasuk pemfilteran menurut — dalam kasus Anda — CPU.sumber
Saya percaya cara paling sederhana untuk melihat 5 proses konsumsi cpu adalah,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Untuk melihat 5 proses memakan memori teratas adalah,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Dimana,
-e
: Bendera ini digunakan untuk memilih semua proses-o
: Bendera ini digunakan untuk memformat sebagai yang ditentukan pengguna.pid
: Argumen ini digunakan untuk menampilkan pidcomm
: Argumen ini digunakan untuk menunjukkan nama perintah saja. Untuk mendapatkan perintah penuhargs
, gunakan ,cmd
ataucommand
%cpu
: Argumen ini menunjukkan persentase pemanfaatan CPU dari proses dalam format "##. #". Di sinipcpu
juga bisa digunakan.%mem
: Argumen ini menunjukkan rasio ukuran set penduduk proses dengan memori fisik pada mesin, dinyatakan sebagai persentase. Di sinipmem
juga bisa digunakan.--sort
: Tentukan urutan penyortiran. Setelah=
itu-
tanda digunakan untuk mengurutkan nilai tertinggi di atas di mana pilihan default yang+
adalah daftar urutan yang meningkat numerik [yaitu 0 n].sumber
top -bn1 |sed -n '7,12'p
berfungsi sebagai liner kecil yang bagus juga.Meskipun saya lebih suka menggunakan ps dengan --sort = X -o X, Y, Z
menggunakan ps Anda dapat menarik berbagai statistik grep untuk proses ATAU pengguna dan lalu ATAU rata-rata mereka dengan pipa untuk awk.
sumber