ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

bonnie++

Artikel in Arbeit

Dieser Artikel wird momentan von nbkr erstellt. Als Fertigstellungsdatum wurde der 20.06.2011 angegeben.


Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen, oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

bonnie++ 🇬🇧 ist ein Benchmarkwerkzeug, mit dessen Hilfe man die Leistung einer Partition, also Dateisystem plus zugehörige Hardware testen kann.

Installation

bonnie++ ist schon seit Ubuntu 6.06 in den Softwarerepositories enthalten und kann mittles

  • bonnie++

Befehl zum Installieren der Pakete:

sudo apt-get install bonnie++ 

Oder mit apturl installieren, Link: apt://bonnie++

installiert [1] werden.

Nutzung

Bevor man bonnie++ startet, sollte man sich im Klaren sein, dass das Tool nicht gerade ziemperlich mit Resourcen um geht. Damit die Tests aussagekräftig werden, schreibt bonnie++ nicht einfach nur ein paar Kilobyte auf die Platte. Standardmäßig legt bonnie++ zum Testen im ersten Schritt Datei an die doppelt so groß ist wie der RAM des Systems. Bei einem Server mit 8 GB RAM, schreibt bonnie++ als 16 GB auf die Platte. Man sollte also ausreichend Platz haben und bonnie++ nicht auf Maschinen aufrufen die gerade wichtigeres zu tun haben.

bonnie++ liegt unter /usr/sbin und ist somit nicht direkt im Pfad eines normalen Anwenders. Startet man bonnie++ jedoch als root [3] erhält man einen Hinweis, dass man es eigentlich als normaler User verwenden sollte. Zur Lösung ruft man bonnie++ einfach mit vollständigem Pfad auf [2], also

/usr/sbin/bonnie++ 

Interpretation der Ausgabe

Die Ausgabe von bonnie++ ist nicht unbedingt selbsterklärend. Die Software misst prinzipiell drei Werte:

  • Wie schnell kann auf die Platte geschrieben werden.

  • Wie schnell kann von der Platte gelesen werden.

  • Wie schnell können Metadaten von Dateien geändert werden.

Eine typische Aussgabe kann dabei so aussehen:

/usr/sbin/bonnie++
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
srv1            16G   910  98 62103   8 29399   4  3481  75 71631   4 236.6   5
Latency             15233us   11422ms    1309ms     112ms     204ms    1157ms
Version  1.96       ------Sequential Create------ --------Random Create--------
srv1                -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 22125  29 +++++ +++ 10922   6 +++++ +++ +++++ +++ +++++ +++
Latency             21238us     704us     395us     603us      26us      72us
1.96,1.96,srv1,1,1307522373,16G,,910,98,62103,8,29399,4,3481,75,71631,4,236.6,5,16,,,,,22125,29,+++++,+++,10922,6,+++++,+++,+++++,+++,+++++,+++,15233us,11422ms,1309ms,112ms,204ms,1157ms,21238us,704us,395us,603us,26us,72us

Wichtig sind dabei die mit "Sequential Output" und "Sequential Input" überschrieben Bereiche.

Sequential Output

Sequential Output zeigt die Schreibgeschwindigkeit des Systems, dabei wird zwischem einem wiederholten Aufruf von putc() - also quasi dem schreibenen einzelner Zeichnen, dem schreiben von ganzen Blöcken und dem "Rewrite" also dem verändern von Blöcken, unterschieden.

Die Zahl 910 gibt also an, dass 910.000 (K steht für Kilo = 1000) putc() Aufrufe pro Sekunden durchgeführt werden können. Das Beispiel zeigt auch, dass 62103000 Blöcke pro Sekunde geschrieben werden können. Man sieht dass das schreiben ganzer Blöcke wesentlich effizienter ist als einzelne putc() Aufrufe.

Sequential Input

Sequential Input zeigt die Lesegeschwindigkeit des Systems. Es wird wieder nach einzelner Zeichen und ganzer Blöcke unterschieden. Im Beispiel kann man als 3.481.000 Zeichen pro Sekunden lesen oder 71.631.000 Blöcke pro Sekunde.

Random Seeks

Random Seeks zeigt die Anzahl von Seekoperationen, also das physikalische Bewegen des Schreiblesekopfs zu einer anderen Position, pro Sekunde. Höhere Werte sind natürlich besser. Das System aus dem Beispiel kann also 236.6 mal pro Sekunde die Leseposition der Festplatte ändern. Dazu gehört zum einen das Bewegen des Schreib/Lesekopfs zum anderen die Drehung der Platte selbst.

Sequential Create / Random Create

Diese Daten geben an wie schnell Dateien bzw. die Metadaten von Dateien auf die Festplatte geschrieben (create), gelesen (read) oder gelöscht (delete) werden können. Diese Werte sind wichtig für Systeme die viele kleine Dateien auf die Festplatte schreiben müssen wie z.B. Proxyserver.

Hinweis zu den %CP Angaben

Die %CP Angaben zeigen wie sehr der Prozessor für die einzelnen Ausgaben belastet wurde. Allerdings muss man diese Werte auf Multikern- oder MultiCPU-Systemen mit Vorsicht betrachten. Oftmals läuft bonnie++ selbst auf einem anderen Prozessor als der Schreib/Lese Prozess. Die Werte sind in einem solchen Fall nicht aussagekräftig.

+ Zeichen in der Ausgabe

Die Pluszeichen in der Ausgabe bedeuten, dass ein Test zu schnell abgeschlossen war um aussagekräftig zu sein. Man erhält diese Werte hauptsächlich bei den Sequential Create / Random Create Werten. Das liegt daran, dass bonnie++ zum Testen dieser Werte Dateien auf der Festplatte erzeugen muss. Es kann aber nicht vorher erkennen, wieviele Dateien für einen Test sinnvoll sind. Deshalb nimmt bonnie++ immer 16x1024 Dateien. Das zeigt sich auch im Beispiel, unter "files" steht 16. Man kann das mit dem Parameter -n erhöhen.

/usr/sbin/bonnie++ -n 128

würde 128x1024, also gute 131.000 Dateien zum Testen anlegen. Das dauert natürlich deutlich länger und die Messwerte werden besser. Allerdings muss man aufpassen, dass man über diesen Parameter nicht alle Inodes aufbraucht und so keine weiteren Dateien mehr auf dieser Platte erzeugt werden können, bis man wieder Dateien löscht.

Fazit

Mit bonnie++ kann man die Leistungsdaten eines Systems bzgl. Platten I/O gut untersuchen. Allerdings braucht man etwas Erfahrung und Vergleichswerte um einschätzen zu können ob eine Platte gut oder schlecht ist. Auch sollte man im Hinterkopf behalten, dass die Leistung nicht nur von der Hardware, sondern auch vom Filesystem und der aktuellen Systemlast abhängt.

Quellen

Diese Revision wurde am 20. Juni 2011 16:42 von march erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Shell, System, Benchmark