ForumWie hoch sollte die Blockgröße bei dd sein?
Andreas M. – Sonntag, 07. Dezember 2008 22:37 Uhr

Hallo,

ich lösche eine Festplatte mit:

dd if=/dev/zero of=/dev/sda bs=2000k

Wenn ich bs=64000k eingebe, ändert sich an der “Schreibgeschwindigkeit” nichts. Von was hängt die optimale Blockgröße ab?

Gruß
Andreas

1 Antwort
jabo – Montag, 08. Dezember 2008 11:26 Uhr

Hi, man kann u.a. mit fdisk -l /dev/ die Blockgröße des Zieldevices ermitteln. Verwendet man die (oder ein glattes Vielfaches), sind die Blockschritte gleich der Sektorenzahl.

Auf die Geschwindigkeit wirkt sich das eher minimal aus glaube ich bei schnellen Platten nicht so groß, man müßte halt bei größeren Blöcken etwas seltener schreiben, aber der Kernel hebt sich das Schreiben doch eh auf, bis er “Zeit” hat. Kann es sein, daß egal was da steht einige Blöcke gepuffert werden und sich das dadurch nicht auswirkt?

Andreas M. – Montag, 08. Dezember 2008 22:39 Uhr

Zuerst mal danke an jabo.

Ich habe mich dann mal etwas näher damit beschäftigt. Auf Anregung von

http://wiki.linux-club.de/opensuse/Dd#die_Blockgr.C3.B6.C3.9Fe

habe ich selbst ein paar Testläufe durchgeführt, mit dem folgenden Ergebnis:

bs=512; 78,68 min = 8,5 MB/s
bs=1k; 78,68 min = 8,5 MB/s
bs=2k; 78,64 min = 8,5 MB/s
bs=4k; 20,87 min =32 MB/s
bs=8k; 20,88 min = 31,9 MB/s
bs=16k; 20,89 min = 31,9 MB/s
bs=2048k; 20,88 min = 32 MB/s

Meine persönliche Auswertung lautet, bs=4k liefert einen guten Wert.

Andreas

Ulf B. – Montag, 08. Dezember 2008 23:26 Uhr

Bei allem unter 4k muss der Block mehrfach geöffnet werden. Standardblockgröße ist 4k, was seinen Grund hat. Also ab dieser Größe bringt eine Vergrößerung nichts mehr, außer bei speziellen Platten.

Gruß
Ulf

Marcel – Dienstag, 09. Dezember 2008 10:43 Uhr

Die Blockgröße hängt auch vom Dateisystem ab. 4k sind die Regel, aber es gibt auch Ausnahmen.

Johannes Weiß – Dienstag, 09. Dezember 2008 20:14 Uhr

Hallo,

Nein, mit dem Dateisystem hat das überhaupt nichts zu tun. Das überschreibst du ja Gerade!
Das ist alles eine Ebene tiefer, es liegt entweder an der Platte oder am ATA-Layer im Kernel. Ich tippe auf ersteres.

Viele Grüße,
Johannes