44

Я пытаюсь определить оптимальный размер для большой копии с моего жесткого диска, используя dd. Я пытаюсь выяснить, какой размер блока лучше всего использовать, и я бы предположил, что это размер аппаратного блока для этого диска.

6 ответов6

43

Команда lsblk отлично подходит для этого:

lsblk -o NAME,PHY-SeC

Результаты, достижения:

NAME   PHY-SEC 
sda        512 
├─sda1     512 
├─sda2     512 
└─sda5     512 
30

Linux предоставляет размер физического сектора в файлах /sys/block/sdX/queue/physical_block_size . Хотя, чтобы получить лучшую производительность, вам, вероятно, следует провести небольшое тестирование с различными размерами и размерами. Я мог бы не найти в ясный ответ в том , что , используя именно физический размер блока будет получить оптимальный результат (хотя я предполагаю , что это не может быть плохим выбором).

24
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size:                  4096 bytes

http://wayback.archive.org/web/20150921015457/https://nxadm.wordpress.com/2010/04/30/4096-physical-block-size-drives/

7

Мой не предназначен для полного ответа, но я надеюсь, что это также поможет.

Вот кое-что из http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html


3 - Определите подходящий размер блока

Для более быстрого резервного копирования это может помочь определить оптимальный размер блока дискового устройства, которое вы собираетесь сделать резервную копию. Предполагая, что вы собираетесь сделать резервную копию /dev /sda, вот как вы можете использовать команду fdisk для определения наилучшего размера блока:

rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units

Units = cylinders of 16065 * 512 = 8225280 bytes

Обратите внимание, что на выводе fdisk указано «цилиндры 16065 * 512». Это означает, что на диске 512 байт на блок. Вы можете значительно повысить скорость резервного копирования, увеличив размер блока в 2–4 раза. В этом случае оптимальный размер блока может быть 1 КБ (512 * 2) или 2 КБ (512 * 4). Кстати, жадность и использование блока размером 5k (512 * 10) или чего-то чрезмерного не поможет; в конечном итоге система станет узким местом на самом устройстве, и вы не сможете выжать дополнительную производительность из процесса резервного копирования. (выделение добавлено)


Я подозреваю, что разница в производительности между почти оптимальным и оптимальным размером блока для данной конфигурации незначительна, если набор данных не огромен. Действительно, пользователь FixUnix (сообщение от 2007 года) утверждал, что его оптимальные времена были только на 5% быстрее, чем неоптимальные. Возможно, вы можете выжать немного больше эффективности, используя кратные размеру "кластера" или размера блока файловой системы.

Конечно, если вы переместитесь слишком далеко по обе стороны от оптимального размера блока, у вас возникнут проблемы.

Суть в том, что вы, скорее всего, получите только около 5% производительности (то есть 3 минуты в час) при абсолютном оптимальном размере блока, поэтому подумайте, стоит ли это вашего времени и усилий для дальнейших исследований. Пока вы держитесь подальше от экстремальных ценностей, вы не должны страдать.

4

Каждая передача диска генерирует прерывание, которое должен обрабатывать процессор. Типичный диск со скоростью 50 Мбит / с будет генерировать 100000 из них каждую секунду при размере блока 512 байт. Обычный процессор будет обрабатывать 10 тысяч из них, поэтому больший (2 ^ x) размер блока будет удобнее (в большинстве случаев размер блока FS по умолчанию равен 4 КБ). системы до 64К размера ISA DMA) было бы более практичным ...

1

Кроме того, вы можете просмотреть выходные данные lshw чтобы проверить другие результаты (а также потому, что у меня нет дистрибутива hdparm в моем дистрибутиве). Это может помочь сузить это:

sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .