Como determinar o melhor tamanho de byte para o comando dd

21

Eu sei que fazer um dd if = / dev / hda de = / dev / hdb faz uma cópia profunda do disco rígido. Ouvi dizer que as pessoas conseguiram acelerar o processo aumentando o número de bytes que são lidos e gravados por vez (512) com a opção "bs".

Minha pergunta é:

O que determina o tamanho ideal de bytes para copiar de um disco rígido?

e

Por que isso determina o tamanho ideal de bytes?

    
por James T 03.06.2010 / 19:43

3 respostas

17

Como Chris S diz que o tamanho ideal de bloco depende do hardware. Na minha experiência, é sempre maior que os 512 bytes padrão. Se você estiver trabalhando com dispositivos brutos, a geometria do sistema de arquivos sobreposto não terá efeito. Eu usei o script abaixo para ajudar a "otimizar" o tamanho do bloco de dd.

#!/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
    
por 04.06.2010 / 10:18
1
Infelizmente, o tamanho perfeito dependerá do barramento do sistema, do controlador do disco rígido, da própria unidade e dos drivers de cada um deles. A única maneira de encontrar o tamanho perfeito é continuar tentando tamanhos diferentes. Justo aviso de que alguns dispositivos suportam apenas um tamanho de bloco, embora isso seja raro, e geralmente os drivers fazem a diferença mesmo assim.

Eu acho que o tamanho de bloco de 2 ^ 15 ou 2 ^ 16 funciona melhor para as minhas unidades SATA WDC (cache de 8 mb) conectadas a um controlador Adaptec SAS RAID, 4x PCIe, FreeBSD 8.0-STABLE de 64 bits. Mas para o meu pen drive barato, os tamanhos de 2 ^ 10 parecem ser mais rápidos.

O "tamanho perfeito" é quase sempre uma potência de dois.

    
por 03.06.2010 / 19:54
0

Posso atestar o mérito de medir o resultado de realizar um teste no dispositivo que está sendo usado antes de perder tempo. Eu estupidamente não me incomodei e depois de medir, em seguida, ajustar o tamanho do meu bloco cortou a minha duração DD de uma transferência de 590Gb pela metade. O mesmo valor de BS teria reduzido apenas o tempo em 20% usando um combo caddy / drive diferente.

    
por 19.02.2017 / 15:22