Как определить оптимальный размер байта для команды dd

Как определить оптимальный размер байта для команды dd

Я знаю, что делать что- dd if=/dev/hda of=/dev/hdbто значитглубокая копия жесткого диска. Я слышал, что люди смогли ускорить процесс, увеличив количество байтов, которые считываются и записываются за один раз (по умолчанию: 512) с помощью bsопции.

Мой вопрос:

  • Что определяет идеальный размер байта для копирования с жесткого диска?

и

  • Почему это определяет идеальный размер байта?

решение1

КакКрис С.написал вэтот ответоптимальный размер блока зависит от оборудования. По моему опыту, он всегда больше, чем 512 байт по умолчанию. Если вы работаете с необработанными устройствами, то геометрия вышележащей файловой системы не будет иметь никакого эффекта. Я использовал скрипт ниже, чтобы помочь «оптимизировать» размер блока 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

решение2

К сожалению, идеальный размер будет зависеть от вашей системной шины, контроллера жесткого диска, самого диска и драйверов для каждого из них. Единственный способ найти идеальный размер — продолжать пробовать разные размеры. Честно предупреждаю, что некоторые устройства поддерживают только один размер блока, хотя это бывает редко, и обычно драйверы в любом случае компенсируют разницу.

Я обнаружил, что размер блока 2^15 или 2^16 лучше всего подходит для моих дисков WDC (кэш 8 МБ) SATA, подключенных к контроллеру Adaptec SAS RAID, 4x PCIe, 64-битной FreeBSD 8.0-STABLE. Но для моего дешевого старого флеш-накопителя размеры 2^10 кажутся самыми быстрыми.

«Идеальный размер» почти всегда равен степени двойки.

решение3

Я могу поручиться за заслуги измерения результата выполнения теста на используемом устройстве до того, как тратить время. Я по глупости не стал этим заниматься, и после измерения, а затем корректировки размера блока сократил длительность DD для передачи 590 Гб вдвое. То же значение BS сократило бы время только на 20% при использовании другой комбинации caddy/drive.

Связанный контент