Як визначити найкращий розмір байту для команди DD


21

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

Моє запитання:

Що визначає ідеальний розмір байта для копіювання з жорсткого диска?

і

Чому це визначає ідеальний розмір байта?


Я подумав, що доведеться повністю рівномірно розділити розмір диска або розділу: отже, я спробував визначити точний розмір байта цільового розділу, отримати прості коефіцієнти та визначити досить великий блок, кратний кілька таких головних факторів ...
ПП.

Відповіді:


18

Як каже Кріс С, оптимальний розмір блоку залежить від обладнання. На мій досвід, це завжди більше, ніж 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

4
В ОС X "1М ... 8М" слід зменшити до "1м ... 8м".
Метт Бекман

1
ви можете додати "час" перед DD, щоб отримати додаткові відомості про те, скільки часу було витрачено на очікування IO і яка сума - реальна робота ...
Олів'є Дулак

1
@lain /dev/zeroгенерується, не потрібно читати його з диска; ви могли dd if=/dev/zero ibs=1M count=32 obs=$bs of=/var/tmp/outfile@ olivier-dulac добре, ddвже надрукуйте швидкість; я не думаю time(або /usr/bin/time) додавати будь-яку інформацію, вартую.
bufh

1

На жаль, ідеальний розмір буде залежати від вашої системної шини, контролера жорсткого диска, конкретного самого диска та драйверів для кожного з них. Єдиний спосіб знайти ідеальний розмір - це намагатися пробувати різні розміри. Справедливе попередження про те, що деякі пристрої підтримують лише один розмір блоку, хоча це рідко, і зазвичай драйвери все-таки різняться.

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

"Ідеальний розмір" майже завжди є потужністю два.


0

Я можу поручитися в оцінці результатів виконання тесту на пристрої, який використовується до того, як витрачати час. Я тупо не заважав і після вимірювання, потім, регулюючи розмір блоку, скоротив мою тривалість DD передачі 590 Гб навпіл. Це ж значення BS скоротило б лише час на 20%, використовуючи інший комбо / диск.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.