Я намагаюся визначити оптимальний розмір для великої копії з мого жорсткого диска за допомогою dd. Я намагаюся розібратися, який найкращий розмір блоку для його використання, я б припустив, що це розмір апаратного блоку для цього накопичувача.
Я намагаюся визначити оптимальний розмір для великої копії з мого жорсткого диска за допомогою dd. Я намагаюся розібратися, який найкращий розмір блоку для його використання, я б припустив, що це розмір апаратного блоку для цього накопичувача.
Відповіді:
Команда 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
. Хоча, щоб досягти найкращої продуктивності, вам, мабуть, варто зробити невелике тестування з різними розмірами та вимірюванням. Я міг би НЕ знайти в ясний відповідь в тому , що , використовуючи саме фізичний розмір блоку буде отримати результат оптимального (хоча я припускаю , що це не може бути поганим вибором).
hdparm
цього, ймовірно, вам бреше.
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size: 4096 bytes
hdparm -I /dev/sda | grep Sector
приємніше, оскільки він покаже як фізичний, так і логічний розміри одразу для зручного порівняння.
Моя не має бути повною відповіддю, але я сподіваюся, що це також допомагає.
Ось трохи від http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html
Для швидшого резервного копіювання це може допомогти визначити оптимальний розмір блоку дискового пристрою, на який ви збираєтесь робити резервну копію. Якщо припустити, що ви збираєтесь робити резервну копію / dev / sda, ось як ви можете використовувати команду fdisk для визначення найкращого розміру блоку:
rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units
Units = cylinders of 16065 * 512 = 8225280 bytes
Зверніть увагу, що на виході fdisk написано "циліндри 16065 * 512". Це означає, що на диску є 512 байти на блок. Ви можете значно підвищити швидкість резервного копіювання, збільшивши розмір блоку в кратному розмірі від 2 до 4. У цьому випадку оптимальним розміром блоку може бути 1k (512 * 2) або 2k (512 * 4). До речі, жадібність та використання блоку розміром 5 к (512 * 10) або щось надмірне не допоможуть; врешті-решт система буде вузьким місцем на самому пристрої, і ви не зможете видалити додаткові показники з процесу резервного копіювання. (наголос додано)
Я підозрюю, що різниця у продуктивності між майже оптимальним та оптимальним розміром блоку для даної конфігурації є незначною, якщо набір даних не є величезним. Дійсно, користувач FixUnix (повідомлення від 2007 р.) Стверджував, що його оптимальні часи були лише на 5% швидшими, ніж неоптимальні. Можливо, ви можете вичавити трохи більшу ефективність, скориставшись кратним розміром кластера або розміром блоку файлової системи.
Звичайно, якщо ви переїдете занадто далеко в будь-який бік оптимального розміру блоку, ви зіткнетеся з проблемою.
Суть полягає в тому, що ви, швидше за все, отримаєте лише близько 5% продуктивності (тобто 3 хвилини на годину) з абсолютним оптимальним розміром блоку, тому подумайте, чи варто ваших витрат часу та зусиль для подальшого дослідження. Поки ви тримаєтесь подалі від екстремальних цінностей, ви не повинні страждати.
echo "p" | /sbin/fdisk /dev/sda...
замість /sbin/fdisk -l /dev/sda...
? другий буде більш чистим і не буде намагатися вносити будь-які зміни.
/sbin/fdisk -l /dev/sda | grep Units
. Це може бути змінено за останні два роки. У будь-якому випадку я оновив вашу відповідь.
Кожна передача диска генерує переривання, яке повинен обробити процесор. Типовий диск 50 Мбіт / с захоче генерувати 100000 з них щосекунди при розмірі блоку 512b. Звичайний процесор оброблятиме 10 тисяч тисяч, таким чином більший (2 ^ х) розмір блоку буде більш зручним (4 кб за замовчуванням розмір блоку FS у більшості системи розміром до 64 кб ISA DMA) були б більш практичними ...
Крім того, ви можете подивитися за результатами, lshw
щоб перевірити інші результати (а також тому, що я, здається, не маю hdparm
доступності в своєму дистрибутиві.) Це може допомогти звузити це:
sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'