it-swarm-id.com

Mengapa `htop` menunjukkan lebih banyak proses daripada` ps`

Di ps xf

26395 pts/78   Ss     0:00  \_ bash
27016 pts/78   Sl+    0:04  |   \_ Unicorn_Rails master -c config/Unicorn.rb                                           
27042 pts/78   Sl+    0:00  |       \_ Unicorn_Rails worker[0] -c config/Unicorn.rb                                        

Dalam htop, itu muncul seperti: htop showing multiple Unicorn_Rails lines

Mengapa htop menunjukkan lebih banyak proses daripada ps?

195
Cheng

Secara default, htop mencantumkan setiap utas proses secara terpisah, sementara ps tidak. Untuk mematikan tampilan utas, tekan H, atau gunakan menu "Setup/Display options", "Sembunyikan userland utas". Ini menempatkan baris berikut dalam ~/.htoprc Atau ~/.config/htop/htoprc Anda (Anda dapat menaruhnya di sana secara manual):

hide_userland_threads=1

(Juga hide_kernel_threads=1, Beralih dengan menekan K, tetapi secara default 1.)

Opsi lain yang bermanfaat adalah “Tampilkan utas dengan warna berbeda” di menu yang sama (highlight_threads=1 Di .htoprc), Yang menyebabkan utas ditampilkan dalam warna berbeda (hijau pada tema default).

Di baris pertama tampilan htop, ada baris seperti “Tugas: 377, 842 thr, 161 kthr; 2 berlari ”. Ini menunjukkan jumlah total proses, utas userland, utas kernel, dan utas dalam status runnable. Angka-angka tidak berubah ketika Anda memfilter tampilan, tetapi indikasi "thr" dan "kthr" menghilang ketika Anda mematikan masing-masing pengguna/kernel thread.

Saat Anda melihat beberapa proses yang memiliki semua karakteristik yang sama kecuali bidang yang terkait dengan PID dan CPU (Nilai bagus,% CPU, WAKTU +, ...), sangat mungkin bahwa mereka adalah utas dalam proses yang sama.

Bagi saya, pada sistem Arch Linux yang kurang lebih saat ini, ps xf menunjukkan kepada saya hanya proses yang dimiliki oleh ID pengguna saya. htop menunjukkan semua proses kepada saya. Coba ps -ef untuk daftar semua proses, atau mungkin ps -ejH untuk mendapatkan daftar hubungan anak/orang tua.

1
Bruce Ediger

htop juga menunjukkan proses yang telah berakhir. Ini bagus, jadi Anda bisa melihat proses yang berumur pendek dan sumber daya apa yang mungkin mereka konsumsi. Jika Anda keluar dari htop dan memulai kembali, Anda akan melihat mereka telah menghilang. Saya tidak bisa menemukan cara untuk membuat proses historis htop drop tanpa memulai ulang, jadi mungkin ada cara.

0
MikeB