Утилита dd — встроенный инструмент Linux для прямого чтения и записи блоков данных на диск, позволяющий измерить реальную скорость дисковой подсистемы без влияния кэша файловой системы. Команда выполняется в консоли и выдаёт точный результат в МБ/с за несколько секунд тестирования.
Зачем нужна проверка скорости диска
- Диагностика деградации производительности сервера после длительной работы
- Верификация характеристик нового оборудования перед вводом в боевую эксплуатацию
- Обнаружение проблем с подключением SATA/SAS кабелей или портов контроллера
- Сравнение скорости записи разных разделов и дисков на одном сервере
- Проверка влияния RAID-конфигурации на пропускную способность
- Выявление замедления из-за S.M.A.R.T. переросток или неправильных настроек BIOS
Пошаговая инструкция по проверке скорости диска утилитой dd
- Откройте терминал на сервере или подключитесь по
SSH. - Проверьте список доступных дисков командой
lsblkилиfdisk -l. - Определите целевой раздел (например,
/dev/sda1) или оставьте тестирование на рабочем разделе/. - Выполните тест скорости чтения, перенаправив данные в
/dev/null:dd if=/dev/sda of=/dev/null bs=1M count=1000 - Дождитесь завершения операции — программа выведет время выполнения и вычислит скорость в МБ/с.
- Для более точного результата увеличьте параметр
countдо 10000 (чтение 10 ГБ данных). - Выполните тест скорости записи на временный файл:
dd if=/dev/zero of=/tmp/testfile bs=1M count=1000 oflag=direct - Удалите тестовый файл после завершения:
rm /tmp/testfile - Параметр
oflag=directисключает кэширование ОС и показывает реальную скорость контроллера. - Запишите полученные значения (чтение и запись) и сравните с эталонными характеристиками диска из даташита.
Часто задаваемые вопросы
Какой размер блока (bs) выбрать для теста? Используйте bs=1M (1 мегабайт) для типичных сценариев; для быстрых NVMe-дисков увеличьте до bs=4M или bs=8M.
Почему при чтении скорость выше, чем при записи? Это нормально: большинство дисков имеют асимметричные характеристики; RAID 5/6 сильнее замедляет запись из-за расчёта паритета.
Нужно ли останавливать сервис перед тестированием? Для максимально точного результата остановите основные приложения командой systemctl stop service_name, но базовая проверка возможна и при работающей системе.