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

174

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                                        

Di htop, muncul seperti: htop menampilkan beberapa baris unicorn_rails

Mengapa htop menunjukkan lebih banyak proses daripada ps?

Cheng
sumber

Jawaban:

249

Secara default, htopdaftarkan setiap utas proses secara terpisah, sementara pstidak. Untuk mematikan tampilan utas, tekan H, atau gunakan menu "Pengaturan / Opsi tampilan", "Sembunyikan utas pengguna". Ini menempatkan baris berikut di ~/.htoprcatau ~/.config/htop/htoprcAnda (Anda dapat menempatkannya 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=1dalam .htoprc), yang menyebabkan utas ditampilkan dalam warna berbeda (hijau pada tema default).

Di baris pertama htoplayar, ada garis 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 pemasukan thread pengguna / kernel.

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

Gilles
sumber
Adakah petunjuk mengapa ini default? Mengapa itu relevan? Sepertinya menambahkan suara tapi saya kira ada alasan bagus.
tuxayo
0

Bagi saya, pada sistem lengkung linux yang kurang lebih saat ini, ps xfhanya menunjukkan kepada saya proses yang dimiliki oleh ID pengguna saya. htopmenunjukkan kepada saya semua proses. Coba ps -efuntuk daftar semua proses, atau mungkin ps -ejHuntuk mendapatkan daftar hubungan anak / orang tua.

Bruce Ediger
sumber