it-swarm.com.de

Warum zeigt "htop" mehr Prozess als "ps"?

Im 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                                        

In htop wird Folgendes angezeigt: htop showing multiple Unicorn_Rails lines

Warum zeigt htop mehr Prozess als ps?

195
Cheng

Standardmäßig listet htop jeden Thread eines Prozesses separat auf, während ps dies nicht tut. Um die Anzeige von Threads auszuschalten, drücken Sie H oder verwenden Sie das Menü "Setup/Anzeigeoptionen", "Userland-Threads ausblenden". Dies setzt die folgende Zeile in Ihr ~/.htoprc oder ~/.config/htop/htoprc (Sie können es alternativ manuell dort ablegen):

hide_userland_threads=1

(Ebenfalls hide_kernel_threads=1, durch Drücken von K umgeschaltet, aber standardmäßig 1.)

Eine weitere nützliche Option ist "Threads in einer anderen Farbe anzeigen" im selben Menü (highlight_threads=1 im .htoprc), wodurch Threads in einer anderen Farbe angezeigt werden (grün im Standarddesign).

In der ersten Zeile der Anzeige htop befindet sich eine Zeile wie „Aufgaben: 377, 842 thr, 161 kthr; 2 läuft ”. Dies zeigt die Gesamtzahl der Prozesse, Userland-Threads, Kernel-Threads und Threads in einem ausführbaren Zustand. Die Zahlen ändern sich nicht, wenn Sie die Anzeige filtern, aber die Anzeigen "thr" und "kthr" verschwinden, wenn Sie die Einbeziehung von Benutzer-/Kernel-Threads deaktivieren.

Wenn Sie mehrere Prozesse sehen, die alle Merkmale gemeinsam haben, mit Ausnahme der PID- und CPU-bezogenen Felder (Netter Wert, CPU%, TIME +, ...), ist es sehr wahrscheinlich, dass sie Threads im selben Prozess sind.

Für mich ist auf einem mehr oder weniger aktuellen Arch Linux-System ps xf zeigt mir nur die Prozesse, die meiner Benutzer-ID gehören. htop zeigt mir alle Prozesse. Versuchen ps -ef für eine Liste aller Prozesse oder vielleicht ps -ejH, um eine Liste der Beziehungen zwischen Kind und Eltern zu erhalten.

1
Bruce Ediger

htop zeigt auch Prozesse an, die beendet wurden. Dies ist großartig, sodass Sie sehen können, welche kurzlebigen Prozesse und welche Ressourcen sie möglicherweise verbraucht haben. Wenn Sie htop beenden und neu starten, sehen Sie, dass sie verschwunden sind. Ich kann keinen Weg finden, um htop dazu zu bringen, historische Prozesse zu löschen, ohne neu zu starten. Vielleicht gibt es also einen Weg.

0
MikeB