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!
ioping
sar
Ausgabe hier . Achten Sie auf die%iowait
Spalte.Antworten:
Persönlich benutze ich den Befehl
iostat -xk 10
und schaue auf dieawait
Spalte.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 iostat
SeiteWarten 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.
quelle