Ich habe eine Intel-SSD (Serie 530, 480 GB). Daten von der Intel-Site:
Sequentielles Lesen – 540 MB/s
Sequentielles Schreiben – 490 MB/s
Zufälliges Lesen – 48000 IOPS
Zufälliges Schreiben – 80000 IOPS
Die aktuelle Auslastung beträgt etwa 5000 IOPS, 50 MByte/Sek. Lesen, 1 MByte/Sek. Schreiben. Die Festplatte wird für die Datenbank verwendet. Das Munin-Plugin „Festplattenauslastung“ zeigt 50 % Auslastung an. Laut Test berechnet Munin dies richtig.
Wie kann ich die Festplattenauslastung anhand der aktuellen IOPs sowie der Lese- und Schreibgeschwindigkeit berechnen?
Antwort1
Aus dem Quellcode des Diskstats-Plugins berechnet Munin den Prozentsatz der Festplattenauslastung, indem es die Gesamtzeit betrachtet, die für IO über einen bestimmten Überwachungszeitraum aufgewendet wurde. Wenn das Gerät die ganze Zeit für IO aufwendet, ist es zu 100 % ausgelastet. Dies ist einigermaßen unabhängig von den tatsächlichen IOPS und Lese-/Schreibgeschwindigkeiten, da diese einen stark vom Zugriffsmuster abhängigen Effekt haben. (Ich nehme an, Sie fragen eigentlich, wie Munin den Prozentsatz der Auslastung berechnet, und nicht speziell, wie man IOPS und Lese-/Schreibgrößen verwendet, um dasselbe zu berechnen.)
Munin erhält diese Daten aus /proc/diskstats. Die betreffende Spalte ist das 10. Feld nach dem Gerätenamen (und Munin macht das Übliche, indem es den Wert beim ersten Lesen speichert und beim zweiten Lesen die Differenz zwischen dem alten und dem neuen Wert berechnet, um das Delta über den Überwachungszeitraum zu ermitteln).
Dokumentation für /proc/diskstats ist verfügbarHier