(Ein Windows-Typ fragt) Messen der Festplattenlatenz unter Linux: Stört mich das?

11

Wenn ich unter Windows überprüfen / bestätigen möchte, dass auf einem Volume, auf dem eine Datenbank oder eine andere App mit geringer Latenz lebt, möglicherweise E / A-Probleme auftreten, überprüfe ich die Festplattenlatenz.

Wenn ich den Windows Average Disk sec / Transfer- Zähler> 18-20 ms konstant sehe, ist mein Kanarienvogel in einer Kohlenmine gerade gestorben und ich muss weitere Untersuchungen durchführen. Umwerfend einfach.

Ich schaue jetzt auf Linux und sehe keine ähnliche latenzbasierte Metrik. Die schnelle Recherche, die ich durchgeführt habe, zeigt, dass ich vielleicht nicht einmal WOLLEN ... Ich sehe viele Hinweise auf I / O Wait, wie die meisten Leute dies verfolgen.

Gibt es eine Faustregel, die Sie in diesem Zusammenhang anwenden? Ist beispielsweise JEDE E / A-Wartezeit für das Volume einer Datenbank schlecht? Gibt es einen einfachen iostat-Befehl, mit dem ich den allgemeinen Zustand der Festplatte besser beurteilen kann, als nur TOP zu betrachten?

Vielen Dank!

Russell Christopher
quelle
4
Sie können nachschlagenioping
ewwhite
Danke, @ewwhite. Ich frage mich wohl nur, ob ich meinen Fokus komplett ändern und dies stattdessen auf andere Weise überwachen muss, weißt du?
Russell Christopher
2
Aktivieren Sie die Sysstat-Erfassung auf Ihren Systemen. Anschließend können Sie den iowait-CPU-Prozentsatz untersuchen, der für die Diagnose der E / A-bezogenen Langsamkeit sehr nützlich ist.
EEAA
2
@RussellChristopher Sie können beispielsweise sehen sarAusgabe hier . Achten Sie auf die %iowaitSpalte.
EEAA
@Matt, obwohl es sehr ähnlich ist, ist der Fokus etwas anders. Diese Qualitätssicherung konzentriert sich mehr auf die Durchführung von Tests in einer simulierten Umgebung, wobei es bei dieser Qualitätssicherung eher darum zu gehen scheint, die aktuelle Leistung in der Produktionsumgebung zu überwachen.
BeowulfNode42

Antworten:

12

Persönlich benutze ich den Befehl iostat -xk 10und schaue auf die awaitSpalte.

  • -x Erweiterte Statistiken anzeigen.
  • -k Zeigt Statistiken in Kilobyte pro Sekunde an. Oder verwenden Sie m für Megabyte / s.
  • 10 Anzeigeintervall in Sekunden

Dies ist eine praktisch identische Metrik wie Windows Average Disk Sec / Transfer und wird in ms anstelle von Sekunden aufgeführt. Es könnten also ähnliche Faustregeln angewendet werden, obwohl dies von allen möglichen Dingen abhängt. Ich finde normalerweise, dass Benutzer bei 15 ms anfangen zu murren und 20 ms ist sehr schlecht.

Drücken Sie Strg + C, um den Vorgang zu beenden, oder geben Sie die Anzahl der Iterationen an, die mit dem Parameter count angezeigt werden sollen. Beachten Sie, dass das erste Iterationsergebnis aufgrund der kleinen Zeitprobe, die in der ersten Iteration verwendet wird, stark verzerrt ist.

Von der man iostatSeite

Warten Die durchschnittliche Zeit (in Millisekunden) für E / A-Anforderungen, die an das zu bedienende Gerät gesendet werden. Dies umfasst die Zeit, die die Anforderungen in der Warteschlange verbringen, und die Zeit, die für die Bearbeitung dieser Anforderungen aufgewendet wird.

Bearbeiten: await ist die Hauptmetrik, mit der ich eine Festplatte unter Produktionslast beobachte, um festzustellen, ob ihr Durchsatz und ihre Iops mit der Nachfrage Schritt halten können.

In der% iowait-Statistik geht es mehr um das Gleichgewicht zwischen CPU- und Festplattennutzung. % iostat bleibt niedriger als erwartet, wenn sowohl die CPU- als auch die Festplattenaktivität hoch sind. Auf der anderen Seite kann% iostat ab einer relativ geringen Festplattenauslastung relativ hoch sein, wenn die CPU inaktiv ist. Dieses Warten muss auch mit einem Körnchen Salz aufgenommen werden. Wenn viel sequentielles Lesen / Schreiben stattfindet, wird die Zahl auf einen niedrigeren Wert verschoben, und Ihre Faustregel von 18 bis 20 ms ist unter diesen Bedingungen nicht hilfreich, da die meisten zu schreibenden Blöcke die sequentiellen Daten sind und gewartet werden sehr schnell von der Festplatte, während das andere zufällige io aufgrund des in die Festplatte integrierten NCQ-Systems (Native-Command-Queuing) wartet, um den Durchsatz zu optimieren, indem die Festplatte die Reihenfolge wählt, in der Anforderungen bearbeitet werden.

BeowulfNode42
quelle
Danke @ beowulfNode42. Ist dies die primäre Metrik, die Sie verwenden, um "fehlerhafte Festplatte" zu betrachten? New Relic scheint sich auf den Prozentsatz der E / A-Wartezeit und der Festplattenauslastung (Lesen und Schreiben) zu konzentrieren ... Dies lässt mich fragen, ob ich der falschen Metrik nachjage oder ob SIE einfach weniger nützliche Informationen melden ...
Russell Christopher
@RussellChristopher Die anderen Statistiken bieten den erforderlichen Kontext für die Interpretation der erwarteten Informationen. Gibt es beispielsweise viele iops (r / und w / s), viele MB / s, ist die durchschnittliche Anforderungsgröße (avgrq-sz) groß oder klein und die durchschnittliche Warteschlangengröße (avgqu-sz)? Ja, zusammen mit den CPU-bezogenen Metriken% iowait,% user,% system usw., um festzustellen, ob die Festplatte die CPU verlangsamt oder umgekehrt.
BeowulfNode42