Спершу потрібно перейти на розділ того диску який нам потрібен. Один із можливих варіантів для вимірювання швидкості запису:

time sh -c "dd if=/dev/zero of=test bs=1048576 count=2048 && sync"

Опція count вказує на к-ть блоків які слід скопіювати. Опція bs — розмір блоку в байтах. Оскільки 1048576 це один Міб, то виходить: скопіювати блок в один Міб 2048 раз.

Для вимірювання швидкості читання:

time sh -c "dd if=test of=/dev/null bs=1048576 && sync"

Тільки я не впевнений в тому що команда sync тут потрібна.

Після закінчення роботи програми слід поділити к-ть записаних даних на затрачений час (рядок real).

Приклад:

time sh -c "dd if=/dev/zero of=test bs=1048576 count=2048 && sync"

2048+0 records in

2048+0 records out

2147483648 bytes (2.1 GB) copied, 52.8006 s, 40.7 MB/s

real    1m9.805s

user    0m0.016s

sys 0m3.180s

2147483648 bytes — к-ть записаних даних. 1m9.805s — час витрачений на виконання команди. Отже, 2147483648/69,805 = 30764037,6477. Що буде 29,34 Міб/с

Програма time видасть час затрачений на операцію запису файлу (слід дивитися на рядок який починається з real після завершення роботи програми). dd створить файл розміром 2Гіб з назвою test. "&&" вказує на те що, якщо лівий операнд завершився успішно (здається у такому випадку програма повертає нуль), то виконати правий операнд. В даному випадку команду sync яка синхронізує дані на диску з даними які знаходяться в оперативній пам’яті. Необхідність команди sync пояснюється тим що частина даних може залишатися в оперативній пам’яті і записатися на жорсткий диск пізніше.

Посилання:

Linux I/O Performance Tests using dd

Check disk speed quickly and easily in Linux

How to check hard disk performance