Wie war das noch mal mit dem Superlativ von Lüge?

Zum benchen von SSDs findet man immer oft den gleichen Test unter Linux.
Nicht nur in diversen Foren, sonder auch bei sehr gute Informationsquellen wie ubuntuusers.de oder wiki.archlinux.org unterläuft aber der selbe schwerer Fehler.

Denn manche SSD-Controller nutzen Kompression.
So zum Beispiel der sehr verbreitete SanForce Controller SF-2281.

Und wo liegt jetzt das Problem?

Ganz einfach. Die Tests sehen immer so aus: $ dd if=/dev/zero of=tempfile …..
Nun ist es sehr,sehr einfach Nullen zu komprimieren, wie sich vermutlich jeder vorstellen kann.
Ein SSD-Controller der Kompression nutzt, hat hier ein leichtes Spiel, denn er kann alles geben was er hat.
Für einen Controller der ohne Kompression arbeitet, ist es hingegen völlig egal.

In der Realität dürfte man aber wohl davon ausgehen, dass die meisten Daten die man so händelt, nicht nur aus Nullen bestehen. Verwendet man alternativ Zufallszahlen, sieht das Ergebnis schnell ganz anders aus.

Im Folgenden mal ein kleiner Vergleich:

OCZ Agility 4 – Controller: Indilinx-Everest-2 > ohne Kompression <
Specs – Seq Read/Write: 420MBs / 410MBs , 4K IOPS Read/Write: 58K / 85K

Kingston SSDNOW V300 – Controller: SanForce SF-2281 > mit Kompression <
Specs – Seq Read/Write: 450MBs / 450MBs , 4K IOPS Read/Write: 85K / 43K

 

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

OCZ Agility 4:
1073741824 Bytes (1,1 GB) kopiert, 5,9588 s, 180 MB/s
Kingston SSDNOW V300:
1073741824 Bytes (1,1 GB) kopiert, 3,53624 s, 304 MB/s

VS

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

OCZ Agility 4:
1073741824 Bytes (1,1 GB) kopiert, 6,05751 s, 177 MB/s
Kingston SSDNOW V300:
1073741824 Bytes (1,1 GB) kopiert, 12,5606 s, 85,5 MB/s

Hinweis: Da /dev/random bzw /dev/urandom zu langsam sind um direkt auf die SSD zu schreiben, werden die Daten vorher erst ins tempfs (RAM) geschrieben lassen und von dort dann erst auf die SSD.

(die Leseraten sind für den Test an sich zu vernachlässigen, aber für den Gesamtvergleich vielleicht interessant)
# echo 3 > /proc/sys/vm/drop_caches
$ dd if=tempfile of=/dev/null bs=1M count=1024

OCZ Agility 4:
1073741824 Bytes (1,1 GB) kopiert, 2,6659 s, 403 MB/s
Kingston SSDNOW V300:
1073741824 Bytes (1,1 GB) kopiert, 3,32878 s, 323 MB/s

Wie man sehen kann, liegt die Schreibrate bei der Kingston SSD im Standarttest sehr viel höher, da der Controller die Kompression voll ausspielen kann. Im Test mit Zufallszahlen sinkt die Schreibrate dagegen auf ein Viertel herab. Bei der Agility 4 gibt es hingegen keine Unterschiede. Was im Benchmarktest von /dev/zero noch recht mager aussah, kann sich hingegen im Vergleich bei dem von /dev/urandom sehr gut behaupten.

Natürlich ist auch dieser Benchmark wieder anfechtbar. Keine Frage.
Der gleiche Test mit einer Video Datei liefert aber zum Beispiel ziemlich die gleichen Werte.
Insofern fehlt es ,meiner Meinung nach, nicht an der entsprechenden Berechtigung, den weit verbreiteten Test von /dev/zero zu hinterfragen.

PS.: Dies soll keine Bewertung der oben genannten SSDs darstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.