Sortieren Sie die Top 10 Prozesse nach der Anzahl der Threads, die jeder in Linux erstellt hat

Sortieren Sie die Top 10 Prozesse nach der Anzahl der Threads, die jeder in Linux erstellt hat

Ich habe einen Linux/Debian-Server laufen: PostgreSQL, Tomcat. Manchmal kann ich nicht per SSH auf den Server zugreifen.

Wenn ich eine SSH-Verbindung mit meinem Server öffne, kann ich meine Anmelde-ID (root) und mein Passwort eingeben, aber wenn ich mein Passwort eingebe und die Eingabetaste drücke, erfolgt keine Reaktion.

Mithilfe der Funktion „Sysinfo“ habe ich herausgefunden, dass, wenn der Server mit dieser Situation konfrontiert wird, etwa 1600 Prozesse aktiv sind (dieser Wert stammt aus sysinfo.procs) und die durchschnittliche Auslastung bei fast 300 liegt (normalerweise liegt die durchschnittliche Auslastung zwischen 0 und 1).

Ich versuche, die TOP 5 Prozesse nach der Anzahl der erstellten Threads aufzulisten. Ich kann jedoch keine einfache Methode finden. Ich habe einen Weg gefunden.

  1. Protokollieren Sie den NLWP-Wert von ps -efL, damit ich weiß, welcher Prozess ungewöhnlich viele Threads erstellt.
  2. Wenn die durchschnittliche Auslastung immer weiter ansteigt, kopiere ich alle /procs/*/statusDateien in das Protokollverzeichnis. So erkenne ich später, welcher Prozess den größten „Threads“-Wert hat.

Wenn Sie noch weitere Vorschläge haben, lassen Sie es mich bitte wissen. Es macht mich verrückt, denn dieser Linux-Server sollte nicht ausfallen

Antwort1

Versuche dies:

$ ps axo nlwp,pid,cmd | sort -rn | head -10

ps ax  - see every process
    o  - format
         nlwp: number of lightweight processes (threads) in the process

verwandte Informationen