Wie kann ich feststellen, welche Prozesse hohe Lasten verursachen, wenn sie nicht mit hoher CPU-Auslastung arbeiten?

12

Manchmal zeigen meine Server im "Top" -Programm einen hohen Auslastungsdurchschnitt (z. B. beträgt die Auslastung auf einem 4-Core-Computer ~ 10), aber die tatsächliche CPU-Auslastung ist nicht besonders hoch.

Ich gehe davon aus, dass viele E / A-intensive Jobs ausgeführt werden. Gibt es eine einfache Möglichkeit, diese Jobs zu identifizieren, die die Last verursachen, wenn ihre "% CPU" -Werte oben nicht so hoch sind?

Lorin Hochstein
quelle
Können Sie den Zusammenfassungsbereich einfügen, der beim Ausführen des topBefehls angezeigt wird?
Friedman

Antworten:

7

iostatkann solche Statistiken melden. In der Regel in Ihrer Distribution im Paket sysstat enthalten.

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

sleske
quelle
+1, weil iostatdas meine Antwort sein würde.
Ernie
4

Wenn Sie ein IO-Accounting in Ihrem Kernel haben, können Sie iotopsolche Informationen angeben. Überwachungswerkzeuge wie collectd können die Daten aufzeichnen und darüber berichten.

David Spillett
quelle
4

Um herauszufinden, was eine hohe Last 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 hohen% util oder langen Wartezeiten oder großer durchschnittlicher Warteschlangengröße
    • tiefer graben mit iotop
  • ps -ax Suchen Sie nach Zustand D, bei dem es sich um einen unterbrechungsfreien Ruhezustand handelt (normalerweise E / A), und führen Sie ihn noch einmal aus, um zu überprüfen, ob sie sich noch im Zustand D befinden
    • graben tiefer mit strace
    • Überprüfen Sie die Dateien und Verbindungen dieser Prozesse mit lsof und netstat
  • sar / sysstat - mit diesem Tool können Sie nicht nur "now" -Statistiken untersuchen, sondern auch überprüfen, was gestern um Mitternacht passiert ist
    • sar -b - Gesamtaktivitäten
    • sar -d - Einzelne Blockgeräte-Aktivitäten
3h4x
quelle