So ermitteln Sie die beste Bytegröße für den Befehl dd

So ermitteln Sie die beste Bytegröße für den Befehl dd

dd if=/dev/hda of=/dev/hdbIch weiß , dass dasTiefe Festplattenkopie. Ich habe gehört, dass Leute den Vorgang beschleunigen konnten, indem sie 512mit der Option die Anzahl der gleichzeitig gelesenen und geschriebenen Bytes erhöhten (Standard: ) bs.

Meine Frage ist:

  • Wovon hängt die ideale Bytegröße zum Kopieren von einer Festplatte ab?

Und

  • Warum bestimmt das die ideale Bytegröße?

Antwort1

AlsChris Sschrieb indiese AntwortDie optimale Blockgröße ist hardwareabhängig. Meiner Erfahrung nach ist sie immer größer als die standardmäßigen 512 Bytes. Wenn Sie mit Rohgeräten arbeiten, hat die darüber liegende Dateisystemgeometrie keine Auswirkung. Ich habe das folgende Skript verwendet, um die Blockgröße von dd zu „optimieren“.

#!/bin/bash
#
#create a file to work with
#
echo "creating a file to work with"
dd if=/dev/zero of=/var/tmp/infile count=1175000

for bs in  1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 8M 
 
do
        echo "Testing block size  = $bs"
        dd if=/var/tmp/infile of=/var/tmp/outfile bs=$bs
        echo ""
done
rm /var/tmp/infile /var/tmp/outfile

Antwort2

Leider hängt die perfekte Größe von Ihrem Systembus, Festplattencontroller, dem jeweiligen Laufwerk selbst und den Treibern für jedes davon ab. Die einzige Möglichkeit, die perfekte Größe zu finden, besteht darin, verschiedene Größen auszuprobieren. Wir möchten Sie warnen, dass einige Geräte nur eine Blockgröße unterstützen, obwohl dies selten vorkommt, und normalerweise gleichen die Treiber den Unterschied ohnehin aus.

Ich finde, dass Blockgrößen von 2^15 oder 2^16 am besten für meine WDC-SATA-Laufwerke (8 MB Cache) funktionieren, die an einen Adaptec SAS RAID-Controller, 4x PCIe, 64-Bit FreeBSD 8.0-STABLE angeschlossen sind. Aber für meinen billigen alten USB-Stick scheinen Größen von 2^10 am schnellsten zu sein.

Die „perfekte Größe“ ist fast immer eine Zweierpotenz.

Antwort3

Ich kann bestätigen, dass es sich lohnt, das Ergebnis eines Tests auf dem verwendeten Gerät zu messen, bevor man Zeit verschwendet. Ich habe es dummerweise nicht gemacht und nach dem Messen und Anpassen meiner Blockgröße wurde die DD-Dauer einer 590-GB-Übertragung halbiert. Der gleiche BS-Wert hätte die Zeit mit einer anderen Caddy-/Laufwerkskombination nur um 20 % verkürzt.

verwandte Informationen