Diskbench-Exporter

  • Linux

  • Windows

Der Diskbench-Exporter kann die Schreib- und Lesegeschwindigkeit und Berechtigung von lokalen und remote gemounteten Dateisystemen messen. Er schreibt zyklisch eine Datei wählbarer Größe in ein Verzeichnis und liest sie wieder aus. Damit kann überwacht werden, ob die Geschwindigkeiten stark schwanken und z.B. Backups ein Grund für Performance-Schwankungen sind.

Der Node-Exporter bzw. Windows-Exporter ermitteln, wie viel Durchsatz bestimmte storage devices gerade haben. Allerdings messen beide nicht, wie viel theoretisch möglich wäre.
Hierfür kann auch der Diskbench-Exporter verwendet werden.

In folgenden Fällen ist es sinnvoll, regelmäßig eine Durchsatzprüfung durchzuführen:

  • Performance-sensible Speicher/Ablage

  • Netzlaufwerke, bei denen mit einer Schwankung des Durchsatzes zu rechnen ist, welche eventuell Auswirkungen auf die Geschwindigkeit oder Stabilität der Applikation haben

Dabei wird eine Datei definierbarer Größe beim Aufruf des Exporters geschrieben, anschließend wieder gelesen und die Prüfsumme kontrolliert.
Der Exporter gibt dann je konfigurierter Datei jeweils den Erfolg und die Dauer der einzelnen Operationen aus.

Konfiguration

Die Konfiguration befindet sich in der Datei vimon/config/diskbench_exporter/diskbench_exporter.conf.

Hier können 1..n Prüfdateien hinterlegt werden.

Jeder Block beginnt mit dem Property “disk” und sieht so aus:

#Label für das Prometheus-Monitoring:
disk:VIMON_SHARE
#Pfad und Dateiname für die Testdatei:
testfile:/tmp/diskbench_exporter/virtimobench.bin
#Datei nach dem erfolgreichen Lesen löschen?
cleanupFiles:true
#Zeitstempel an den Dateinamen anfügen?
appendTimestamp:true
#Dateigröße in Byte:
fileSize:1048576
#Timeout zum Schreiben in ms:
writeTimeout:3000
#Timeout zum Lesen in ms:
readTimeout:1000
#pre-/post-Processing-Befehle:
#Befehl zum Ausführen vor einer Schreib-Operation (bspw. Verzeichnis erzeugen):
preProcessingCommand:mkdir -p /tmp/diskbench_exporter/
preProcessingCommandTimeout=1000
#Befehl zum Ausführen nach der Lese-Operation (bspw. Überbleibsel weg räumen):
postProcessingCommand:/virtimo/vimon/config/diskbench_exporter/scripts/diskbench_cleaner.sh /tmp/diskbench_exporter/virtimobench.bin_*
postProcessingCommandTimeout=1000

Die Operationen werden sequenziell durchgeführt. Alle Timeouts zusammen sollten daher das Scraping-Intervall dieses Prometheus-Jobs nicht überschreiten.