Я пытаюсь определить оптимальный размер для большой копии с моего жесткого диска, используя dd. Я пытаюсь выяснить, какой размер блока лучше всего использовать, и я бы предположил, что это размер аппаратного блока для этого диска.
6 ответов
Команда lsblk отлично подходит для этого:
lsblk -o NAME,PHY-SeC
Результаты, достижения:
NAME PHY-SEC
sda 512
├─sda1 512
├─sda2 512
└─sda5 512
Linux предоставляет размер физического сектора в файлах /sys/block/sdX/queue/physical_block_size
. Хотя, чтобы получить лучшую производительность, вам, вероятно, следует провести небольшое тестирование с различными размерами и размерами. Я мог бы не найти в ясный ответ в том , что , используя именно физический размер блока будет получить оптимальный результат (хотя я предполагаю , что это не может быть плохим выбором).
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size: 4096 bytes
Мой не предназначен для полного ответа, но я надеюсь, что это также поможет.
Вот кое-что из 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 минуты в час) при абсолютном оптимальном размере блока, поэтому подумайте, стоит ли это вашего времени и усилий для дальнейших исследований. Пока вы держитесь подальше от экстремальных ценностей, вы не должны страдать.
Каждая передача диска генерирует прерывание, которое должен обрабатывать процессор. Типичный диск со скоростью 50 Мбит / с будет генерировать 100000 из них каждую секунду при размере блока 512 байт. Обычный процессор будет обрабатывать 10 тысяч из них, поэтому больший (2 ^ x) размер блока будет удобнее (в большинстве случаев размер блока FS по умолчанию равен 4 КБ). системы до 64К размера ISA DMA) было бы более практичным ...
Кроме того, вы можете просмотреть выходные данные lshw
чтобы проверить другие результаты (а также потому, что у меня нет дистрибутива hdparm
в моем дистрибутиве). Это может помочь сузить это:
sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'