Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Dieser Artikel geht in allen Beschreibungen davon aus, dass die Festplatte als /dev/sda im System eingebunden ist. Die Befehle müssen bei davon abweichenden Systemen daher gegebenenfalls angepasst werden.
Auf dieser Seite werden Möglichkeiten genannt, die Geschwindigkeit von Festplatten zu messen. Insbesondere bei SSD kann durch geeignete Konfiguration die Geschwindigkeit bei Lese- und Schreibvorgängen verbessert werden. Um nachvollziehen zu können, ob eine Optimierung etwas gebracht oder das Gegenteil bewirkt hat, kann es helfen, die Festplatte einem Geschwindigkeitstest („Benchmark“) zu unterziehen.
Eine Alternative zu den hier vorgestellten Möglichkeiten ist bonnie++.
Das Programm hdparm wird zum Lesen und Setzen von Parametern für ATA-Laufwerke genutzt. Es hat aber auch die angenehme Eigenschaft, die Lesegeschwindigkeit von Laufwerken testen zu können.
Dazu nutzt man den Befehl hdparm
in einem Terminal [1] mit Root-Rechten [2], welcher u.a. zwei Tests anbietet.
Für SSD: Das Tool hdparm ist unabhängig vom (korrekten) Partition Alignment. Wer Tests vor und nach dem Alignment durchführen möchte, sollte die Geschwindigkeiten mit dd messen.
Der erste Test nutzt nur die Optionen -t
("Perform device read timings") und -T
("Perform cache read timings") und liest damit die Lesezeiten sowie die Cache-Lesezeiten aus:
sudo hdparm -tT /dev/sda
Die Ausgabe sieht dann in etwa so aus:
/dev/sda: Timing cached reads: 6286 MB in 2.00 seconds = 3143.78 MB/sec Timing buffered disk reads: 838 MB in 3.00 seconds = 279.12 MB/sec
Aus dem Cache liest diese Festplatte also mit etwa 3140 Megabyte pro Sekunde. Aus dem Buffer liest die Festplatte mit knappen 280 Megabyte pro Sekunde.
Der zweite Test nutzt ebenfalls die beiden Optionen -t
und -T
, setzt dazu aber noch die Option --direct
(„Use O_DIRECT to bypass page cache for timings“), was zum direkten Lesen unter Umgehung des Page Caches führt. In der Regel nutzt man den zweiten Test, da dieser nur den Datenfluss misst, den die SSD erreicht, um bestimmte Daten in zwei respektive drei Sekunden zu lesen. Der Befehl in einem Terminal [1] mit Root-Rechten [2] dazu lautet:
sudo hdparm -tT --direct /dev/sda
Die Ausgabe sieht dann in etwa so aus:
/dev/sda: Timing O_DIRECT cached reads: 550 MB in 2.00 seconds = 275.01 MB/sec Timing O_DIRECT disk reads: 810 MB in 3.01 seconds = 269.24 MB/sec
Diese Festplatte liest in zwei Sekunden demnach 550 Megabyte und in drei Sekunden 810 Megabyte, was Datenraten von etwa 275 MB bzw 269 MB pro Sekunde entspricht.
Um dd nutzen zu können, muss die zu überprüfende Partition eingehängt (mount) sein. Der Vorteil an dd ist, dass es sowohl die Lese- als auch die Schreibgeschwindigkeit des Laufwerkes testen kann.
Für SSD: Im Gegensatz zu hdparm ist dd abhängig von einem korrekten Partition Alignment der SSD. Hat man die SSD falsch oder schlecht ausgerichtet, so wirkt sich das auf die Tests aus, welche dann schlechter (also langsamer) ausfallen.
Um die Tests durchführen zu können, sollte man in ein Verzeichnis wechseln auf dem man Lese- und Schreibrechte hat und welches mindestens 1,1 Gigabyte freien Platz hat. Mit folgendem Befehl schreibt man eine temporäre Datei auf die Festplatte, um die Schreibgeschwindigkeit zu testen:
dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
Die Ausgabe sieht in etwa wie folgt aus:
1024+0 Datensätze ein 1024+0 Datensätze aus 1073741824 Bytes (1,1 GB) kopiert, 4,9835 s, 361 MB/s
Im nächsten Schritt löscht man den Buffer-Cache, um die Lesegeschwindigkeit direkt von der Festplatte messen zu können:
echo 3 | sudo tee /proc/sys/vm/drop_caches
Der Cache ist gelöscht; nun folgt der Lesetest:
dd if=tempfile of=/dev/null bs=1M count=1024
Dieser gibt in etwa folgendes aus:
1024+0 Datensätze ein 1024+0 Datensätze aus 1073741824 Bytes (1,1 GB) kopiert, 0,276268 s, 428 MB/s
Nun ist der Buffer-Cache wieder gefüllt, so dass man die Geschwindigkeit dessen prüfen kann:
dd if=tempfile of=/dev/null bs=1M count=1024
Was wiederum folgendes ausgibt:
1024+0 Datensätze ein 1024+0 Datensätze aus 1073741824 Bytes (1,1 GB) kopiert, 0,277148 s, 3,9 GB/s
Man sollte dieses Kommando vier bis fünf Mal durchführen, um ein einigermaßen aussagekräftiges Ergebnis der Buffer-Lese-Geschwindigkeit erhalten zu können.
Zum Abschluss löscht man die temporär erstellte Datei mit dem Befehl:
rm tempfile
Das grafische Werkzeug Laufwerksverwaltung beinhaltet unter anderem auch einen Vergleichstest für Lese- und Schreibgeschwindigkeit. Näheres dazu steht im Abschnitt Laufwerksverwaltung - Vergleichstests.
Für SSD: Auch diese Tests sind unabhängig vom (korrekten) Partition Alignment der SSD.
Intern
bonnie++ - Alternatives Benchmarkprogramm
SSD - Startseite zum Thema SSD
SSD/Alignment - Hinweise zur korrekten Partitionierung von SSD
SSD/Scheduler - Hinweise zur Optimierung von Lese- und Schreibzugriffen
Tuning - Allgemeiner Artikel zum Thema Geschwindigkeitsoptimierung
Informationen zu hdparm:
Benchmarks mit SSD:
Diese Revision wurde am 30. Juli 2015 20:31 von mrkramps erstellt.