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?
top
Befehls angezeigt wird?Antworten:
iostat
kann 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.
quelle
iostat
das meine Antwort sein würde.Wenn Sie ein IO-Accounting in Ihrem Kernel haben, können Sie
iotop
solche Informationen angeben. Überwachungswerkzeuge wie collectd können die Daten aufzeichnen und darüber berichten.quelle
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-Kerniostat -x
Suchen Sie nach hohen% util oder langen Wartezeiten oder großer durchschnittlicher Warteschlangengrößeiotop
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 befindensar -b
- Gesamtaktivitätensar -d
- Einzelne Blockgeräte-Aktivitätenquelle