Festplatten-Performance-Test mit dem Linux-Befehl „dd“

Die Lese-, wie auch Schreibgeschwindigkeiten einer Festplatte zu ermitteln, gehört zu den grundlegenden Aufgaben im Systemmonitoring. Die einfachste Art diese zu ermitteln ist mit dem Befehl „dd“, wofür die Festplatte oder ggf. der USB-Stick jedoch gemountet sein muss. Zusätzlich muss man sich bei Befehlsausführung in der Verzeichnisstruktur des Volumens befinden, welches getestet werden soll.

Der Vorteil an „dd“ ist, dass es sowohl die Lese- als auch die Schreibgeschwindigkeit des Laufwerkes testen kann.

Verwendung von disk dump:

Zunächst überprüfen wir, ob das Programm bereits installiert ist, dies geschieht wie folgt:

which dd

Ausgabe:

Erfolgt keine Ausgabe, ist das Programm nicht vorhanden, in diesem Fall installieren wir es mit:

sudo apt install coreutils

Nun müssen wir zunächst mit dem Befehl „lsblk“ das zu prüfende Volumen identifizieren, dies funktioniert wie folgt:

lsblk

Ausgabe:

In unserem Fall möchten wir die verbaute Festplatte /dev/sda überprüfen, die unter anderem das Root-Verzeichniss ( / ) umfasst, somit erstellen wir uns direkt im Home-Verzeichnis ( ~ ) einen Testordner für unseren Festplatten-Performance-Test und wechseln direkt in diesen, dies geschieht wie folgt:

cd ~ 
mkdir -m755 dd_test
cd dd_test

Zur Überprüfung verwenden wir den Befehl ls -la, die Ausgabe sollte wie folgt aussehen:

Der folgende Befehl schreibt aus dem Verzeichnis /dev/zero eine Datei namens tempfileauf das ausgewählte Laufwerk, welche ausschließlich aus Nullen besteht und 1 Gigabyte groß ist.

Für weitere Informationen bezüglich „dd“, hilft euch der Befehl: man dd

dd 		        (disk dump) 
dd 		        if=Quelle of=Ziel <Optionen> 
bs 		        beschreibt die Blockgröße (block size) (Standard: 512)
count		Anzahl der Blöcke die Gelesen bzw. Geschrieben werden sollen
conv		Umwandeln 
fdatasync 	garantiert das der physischen Schreibvorgang abgeschlossen ist
notrunc	        ungekürztes Outputfile 

Schreibtest:

dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc

Ausgabe:

Da die Datei „tempfile“ jetzt auch in Linux-Cache liegt, wird dieser für den Lesetest zunächst geleert:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Anschließend wird die Datei gelesen und in das Verzeichnis /dev/null (in das Nichts) geschrieben.

Lesetest:

dd if=tempfile of=/dev/null bs=1M count=1024

Ausgabe:

Um ein aussagekräftiges Ergebnis zu bekommen, sollten wir die Punkte 4 – 6 mindestens drei mal wiederholen und den Mittelwert der Messwerte gebildet haben.

Zum Schluss löschen wir die temporäre Datei „tempfile“ mit dem Befehl:

rm tempfile 

Als alternative zu dd sei noch fio kurz erwähnt:

Verwendung von Flexible IO Tester:

Um eine 1 GB Testdatei anzulegen eigent sich folgender Befehl:

fio --rw=write --name=FIO --size=1G --filename=TESTFILE

Die Lesegeschwindigkeit lässt sich folgendermaßen messen:

fio --rw=read --name=FIO --size=1G --filename=TESTFILE

Die Ausgabe ist recht umfangreich, die relevanten Performancewerte stehen am Ende der Ausgabe.

Weitere interessante Artikel finden Sie in unserem Blog.
Oder kontaktieren Sie uns wenn Sie Fragen haben.