/dev/zero
liefert beim Lesen einen endlosen Strom von Null-Bytes. Diese Funktion wird vom Kernel bereitgestellt und erfordert keine Speicherzuweisung. Alle Schreibvorgänge in /dev/null
werden lautlos gelöscht.
Wenn Sie also dd
ausführen , generiert das System 500 Megabyte in null Bytes, die einfach verworfen werden. Außer einem temporären Puffer werden vor, während oder nach diesem Vorgang keine Daten gespeichert.
Die Übertragungsgeschwindigkeit von /dev/zero
bis /dev/null
wird hauptsächlich durch die Geschwindigkeit Ihres Prozessors und relevante Systemaufrufe bestimmt. (In Ihrem Fall ist der Puffer 500 MB groß, und daher testet die Operation auch die Geschwindigkeit Ihres Speichers.)
Ich werde diesen Befehl für Sie übersetzen:
dd if=/dev/zero of=/dev/null bs=500M count=1
Doppelte Daten (dd
) aus der Eingabedatei (if
) von /dev/zero
(virtuell unbegrenzter Vorrat an 0
's) in die Ausgabedatei (of
) von /dev/null
(virtuelles Sinkhole) mit Blöcken von 500 MB Größe (bs
=Blockgröße) und wiederholen Sie dies (count
) nur einmal (1
).
Im Allgemeinen sollte dieser Befehl nur Speicher- und Busgeschwindigkeiten messen. Es kann jedoch fehlschlagen, wenn Sie nicht über 500 MB RAM verfügen. In gewissem Sinne ist es also auch ein impliziter Benchmark, wie schnell Ihr Betriebssystem große Speicherblöcke zuweisen kann.
/dev/null ist ein schwarzes Loch. Es ist nicht genau zum Testen normaler Schreibvorgänge, da es nicht wie eine normale Datei auf die Festplatte schreibt. Anstatt den Kopf auf die Festplatte schreiben zu lassen, werden die Daten sofort nach dem Schreiben auf das Gerät verworfen, sodass sie immer schneller sind als normale lokale Schreibvorgänge.
/dev/zero ist ähnlich für Lesevorgänge. Zum Lesen ist keine Kopfbewegung erforderlich, es ist nur ein unbegrenzter Vorrat an Nullzeichen, sodass es immer schneller gelesen wird als jedes lokale Lesen.
Mit anderen Worten, dies ist wie das Testen in einem Nichts und gibt kein genaues Bild davon, was normale lokale Lese- und Schreibvorgänge ergeben sollten.