GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich feststellen, welche Prozesse hohe Lasten verursachen, wenn es sich nicht um eine hohe CPU-Auslastung handelt?

Lösung 1:

iostat kann solche Statistiken melden. Normalerweise in Ihrer Distribution im Paket sysstat enthalten.

dstat könnte auch einen Blick wert sein, es ist ein moderner Ersatz.

Lösung 2:

Wenn Sie IO-Accounting in Ihrem Kernel haben, können Sie iotop verwenden solche Informationen zu geben. Außerdem können Überwachungstools wie collectd die Daten aufzeichnen und darüber berichten.

Lösung 3:

Um herauszufinden, was die hohe Auslastung verursacht, können Sie einige Dinge überprüfen.

  • vmstat -w zeigt Ihnen ovierwiem (Prozesse, Swap, Mem, CPU, IO, System)
  • pmstat -P ALL liefert Ihnen Statistiken (mit %iowait) pro CPU-Kern
  • iostat -x Suchen Sie nach einem hohen %util oder langem Warten oder einer großen durchschnittlichen Warteschlangengröße
    • graben Sie tiefer mit iotop
  • ps -ax Suchen Sie nach Zustand D, der unterbrechungsfreier Schlaf ist (normalerweise IO), führen Sie ihn noch einmal aus und prüfen Sie, ob sie sich noch im D-Zustand befinden
    • graben Sie tiefer mit strace
    • Dateien und Verbindungen dieser Prozesse mit lsof und netstat prüfen
  • sar/sysstat - mit diesem Tool können Sie nicht nur "Jetzt"-Statistiken untersuchen, sondern auch überprüfen, was gestern um Mitternacht passiert ist
    • sar -b - allgemeine io-Aktivitäten
    • sar -d - individuelle Block-Geräte-IO-Aktivitäten

Linux
  1. Was sind Zombie-Prozesse und wie findet und tötet man Zombie-Prozesse?

  2. So überprüfen Sie die Swap-Nutzung jedes Prozesses in Linux

  3. Wie kann ich überprüfen, ob eine Datei vorhanden ist, und einen Befehl ausführen, wenn dies nicht der Fall ist?

  4. Wie kann ich per Linux-Skript prüfen, ob PostgreSQL installiert ist oder nicht?

  5. Wie kann ich feststellen, was mein Laufwerk hochdreht?

So überprüfen Sie, ob Sie sich in einer Bildschirmsitzung befinden oder nicht in Linux

So finden Sie heraus, welcher Prozess eine hohe CPU-Auslastung verursacht

Wie kann ich überprüfen, welche Terminaldefinitionen verfügbar sind?

Wie kann ich herausfinden, welche Festplatten an einer Linux-Box angeschlossen sind?

Wie kann ich feststellen, welche Dateien ein Prozess geöffnet hat?

Wie hoch darf die Systemlast gehen?