Como determinar o melhor tamanho de bytes para o comando dd

Como determinar o melhor tamanho de bytes para o comando dd

Eu sei que fazer um dd if=/dev/hda of=/dev/hdbfaz umcópia profunda do disco rígido. Ouvi dizer que as pessoas conseguiram acelerar o processo aumentando o número de bytes lidos e gravados por vez (padrão: 512) com a bsopção.

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?

Responder1

ComoChris S.escreveu emesta respostao tamanho ideal do 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 sobrejacente não terá efeito. Usei o script abaixo para ajudar a 'otimizar' o tamanho do bloco do 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

Responder2

Infelizmente, o tamanho perfeito dependerá do barramento do sistema, do controlador do disco rígido, da unidade específica e dos drivers de cada um deles. A única maneira de encontrar o tamanho perfeito é continuar tentando tamanhos diferentes. Aviso justo de que alguns dispositivos suportam apenas um tamanho de bloco, embora isso seja raro e, geralmente, os drivers compensam a diferença de qualquer maneira.

Acho que o tamanho do bloco de 2 ^ 15 ou 2 ^ 16 funciona melhor para 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 meu pen drive antigo e barato, tamanhos de 2 ^ 10 parecem ser os mais rápidos.

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

Responder3

Posso atestar o mérito de medir o resultado da realização de um teste no dispositivo usado antes de perder tempo. Estupidamente, não me incomodei e, depois de medir, ajustar o tamanho do bloco reduziu pela metade a duração do DD de uma transferência de 590 Gb. O mesmo valor de BS teria reduzido o tempo apenas em 20% usando uma combinação diferente de caddy/drive.

informação relacionada