Sie müssen bei der Bewertung dieser Zahlen vorsichtig sein.
- IOWait hängt mit der Festplattenaktivität zusammen, ist aber nicht unbedingt linear korreliert.
- Die Anzahl der CPUs, die Sie haben, wirkt sich auf Ihren Prozentsatz aus.
- Ein hoher IOWait (abhängig von Ihrer Anwendung) ist nicht unbedingt auf ein Problem für Sie hinweisen. Alternativ kann ein kleines IOWait für Sie zu einem Problem werden. Es läuft im Grunde darauf hinaus, welche Aufgabe wartet.
IOWait ist in diesem Zusammenhang das Maß für die Zeit über einen bestimmten Zeitraum, die eine CPU (oder alle CPUs) im Leerlauf verbracht hat, weil alle ausführbaren Tasks auf die Erfüllung einer IO-Operation gewartet haben.
Wenn Sie in Ihrem Beispiel 20 CPUs haben und eine Aufgabe die Festplatte wirklich hämmert, verbringt diese Aufgabe (tatsächlich) 100 % ihrer Zeit in IOWait, anschließend verbringt die CPU, auf der diese Aufgabe ausgeführt wird, fast 100 % ihrer Zeit in IOWarte. Wenn jedoch 19 andere CPUs effektiv im Leerlauf sind und diese Festplatte nicht verwenden, melden sie 0 % IOWait. Dies führt zu einem durchschnittlichen IOWait-Prozentsatz von 5 %, wenn Sie tatsächlich einen Blick auf Ihre Festplattenauslastung werfen würden, könnte dies 100 % anzeigen. Wenn die Anwendung, die auf dem Datenträger wartet, für Sie kritisch ist, sind diese 5 % etwas irreführend, da die Aufgabe im Engpass wahrscheinlich viel größere Leistungsprobleme aufweist, als wenn sie um 5 % langsamer wird.
warten fast so viele CPU-Prozesse wie arbeiten? (=> schlecht)
Denken Sie wahrscheinlich daran, dass CPUs größtenteils Aufgaben ausführen und Aufgaben IO anfordern. Wenn zwei separate Tasks damit beschäftigt sind, denselben Datenträger auf zwei separaten CPUs abzufragen, werden beide CPUs auf 100 % IOWait gesetzt (und im Beispiel mit 20 CPUs auf 10 % des durchschnittlichen Gesamt-IOWait).
Grundsätzlich, wenn Sie viele Aufgaben haben, die IO anfordern, insbesondere von derselben Festplatte, und diese Festplatte zu 100 % ausgelastet ist (siehe iostat -mtx
) dann ist das schlecht.
die Arbeitsprozesse warten 5,0% ihres Ausführungsplans? (=> ok in diesem Fall)
Nein. Die Arbeitsprozesse warten mit ziemlicher Sicherheit in Vollzeit auf IO. Es ist nur der durchschnittliche Berichtsfall ("die anderen CPUs sind nicht beschäftigt"), der den Prozentsatz oder die Tatsache verfälscht, dass die CPU viele Aufgaben auszuführen hat, von denen viele keine E/A ausführen müssen.
Als allgemeine Regel gilt, dass auf einem Multi-CPU-System ein IOWait-Prozentsatz, der gleich der Anzahl der CPUs ist, die Sie durch 100 dividiert haben, wahrscheinlich etwas zu untersuchen ist.
etwas anderes
Siehe oben. Beachten Sie jedoch, dass Anwendungen, die sehr viel schreiben, gedrosselt werden (Schreiben nicht mehr verwenden, direkt auf die Festplatte schreiben). Dies führt dazu, dass diese Tasks ein hohes IOWait erzeugen, während andere Tasks auf derselben CPU, die auf dieselbe Festplatte schreiben, dies nicht tun würden. Es gibt also Ausnahmen.
Beachten Sie auch, dass, wenn Sie 1 CPU für die Ausführung von 2 Aufgaben haben, eine ein starker IO-Lese-/Schreiber und die andere ein starker CPU-Benutzer ist, dann meldet die CPU in diesem Fall 50 % IOWait, wenn Sie 10 Aufgaben wie diese haben wäre 10 % IOWait (und eine schreckliche Last), sodass die Zahl viel niedriger gemeldet werden kann, als was tatsächlich ein Problem darstellen könnte.
Ich denke, Sie sollten sich unbedingt iostat -mtx
ansehen um einige Messwerte zur Festplattenauslastung zu erhalten, und pidstat -d
Um einige Pro-Prozess-Metriken zu erhalten, überlegen Sie dann, ob die Anwendungen, die auf diese Weise auf diese Festplatten zugreifen, wahrscheinlich ein Problem verursachen oder ob andere potenzielle Anwendungen, die auf diese Festplatten zugreifen, wahrscheinlich ein Problem verursachen.
CPU-Metriken fungieren wirklich als Indikatoren für zugrunde liegende Probleme, sie sind allgemein und verstehen daher, wo sie zu sein können Allgemein ist eine gute Sache.