Daniel's Blog

Festplatten-Benchmarks mit Bonnie++

Um die Geschwindigkeit einer Festplatte zu bestimmen, gibt es unter Linux verschiedene Tools.

hdparm

Für einen einfachen Test reicht das vorinstallierte hdparm völlig aus. hdparm -tT /dev/sda gibt beispielsweise die Lesegeschwindigkeit der ersten Festplatte aus. Allerdings kann hdparm nur die Lesegeschwindigkeit bestimmen und es wird nur die Geschwindigkeit der nackten Platte (unter Umgehung des Dateisystems) gemessen.

bonnie++

Für einen Test unter realistischen Bedingungen ist daher ein anderes Tool nötig. Das Linux-Standardtool dafür ist bonnie++. Da es bei den meisten Distributionen in den Repositories enthalten ist, gestaltet sich die Installation sehr einfach:

apt-get install bonnie++

bonnie++ führt zwei Testverfahren durch. Zuerst wird eine große Datei angelegt (in der Standardeinstellung doppelt so groß wie der Arbeitsspeicher), danach werden viele kleine Dateien angelegt (in der Standardeinstellung 16.000).

Eine HTML-formatierte Ausgabe erhält man, wenn man bonnie++ mit

bonnie++ -d /pfad/zum/verzeichnis -u root -q | bon_csv2html > result.html

aufruft. Alle Dateien werden dabei in /pfad/zum/verzeichnis angelegt. Lässt man den Parameter -d weg, werden alle Dateien im aktuellen Verzeichnis angelegt. Das Ergebnis landet dann in der Datei result.html im aktuellen Verzeichnis.

Gerade bei langsamen Datenträgern kann der Test sehr lange dauern. Dann ist es notwendig die Testparameter anzupassen. Allerdings erlaubt es bonnie++ nicht, die Größe der Datei unter das doppelte des Arbeitsspeichers zu senken. Dies ist der Fall, da man sonst nur die Geschwindigkeit das Dateisystem-Caches messen würde und die Angabe der Lesegeschwindigkeit nicht stimmt. Mit einem kleinen Trick kann man bonnie++ aber dennoch zwingen nur eine kleine Datei zu schreiben:

bonnie++ -r 500M -s 1G -n 10 -d /pfad/zum/verzeichnis -u root -q | bon_csv2html > result.html

Der Parameter -r 500M gibt dabei an, dass bonnie++ von einer Arbeitsspeichergröße von 500MiB ausgehen soll. Dadurch ist es möglich die Größe der Testdatei mit -s 1G auf 1GiB zu senken. Die Lese-Werte sind dann allerdings nicht mehr zu gebrauchen. Mittels -n 10 wird eingestellt, dass bonnie++ nur 10.000 kleine Dateien anlegen soll.

Quellen

Kommentar hinzufügen


( lesstile - umschließe Code-Blöcke mit ---)