Как измерить скорость жесткого диска

Иногда хочется быстро прикинуть, как работает дисковая подсистема, либо сравнить 2 жестких диска. Очевидно, что измерить реальную скорость дисков практически невозможно, она зависит от слишком большого числа параметров. Но получить некое представление о скорости дисков можно.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Проверка скорости чтения диска

Проще всего измерить скорость диска с помощью программы hdparm. Установить ее очень просто:

CentOS/RHEL:

# yum -y install hdparm

Debian/Ubuntu

# apt-get -y install hdparm

Теперь нужно вывести список дисков и разделов в системе:

# fdisk -l

disk-speed-01

Выбираем нужный раздел и проверяем скорость чтения:

# hdparm -t /dev/sda2

disk-speed-02

Обращаю ваше внимание еще раз на то, что мы видим очень примерные цифры, которые имеют значение только в сравнении с другими цифрами, полученными в схожих условиях. hdparm выполняет последовательное чтение с диска. В реально работе скорость чтения диска будет другой.

Проверка скорости записи на диск

Для того, чтобы измерить скорость записи на диск, можно воспользоваться стандартной утилитой linux - dd. С ее помощью мы создадим на диске файл размером 1 Gb частями по 1Mb.

Измеряем скорость записи на диск:

# sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync

disk-speed-03

Я измерял скорость на виртуальной машине, диск которой был размещен на RAID5, собранным из 5-ти дисков SAS 10к. В принципе, неплохой результат. Можно изменить размер файла и блоков, из которого он записывается. Если сделать файл побольше, результат скорости диска может получиться более приближенный к реальности.

А вот скорость диска на VDS, который я арендую. Результат в разы хуже:

disk-speed-04

Скорость диска на виртуальной машине, расположенной на втором SATA диске моего рабочего ноутбука:

disk-speed-05

Результат не очень, надо разбираться в чем дело. Давно возникли подозрения, что с диском что-то не то, заметно подтормаживают виртуальные машины, хотя раньше это было не заметно. Жаль, результатов более ранних тестов не сохранилось.

Интересно было бы посмотреть на ваши результаты тестов. Если же вы хотите серьезно измерить скорость дисков, то вам сюда - Как правильно мерять производительность диска.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

19 комментариев

  1. Лаврін

    Для наглядности происходящего есть такая GUI утилита, системный монитор текущего состояния с отображением скорости GKrellM в ней есть возможность по накопителям отобразить общий чарт, а так же выбрать непосредственно диск и разумеется другие мониторы (CPU, LAN, RAM, SWAP, процессы, t℃, скорость вращения вентиляторов, вольтажи), очень рекомендую, использую наверное с 2007г.
    Ну и разумеется CLI:
    По накопителям
    sudo iotop
    по сетевому стеку
    sudo iftop

  2. А кто сказал что временный файл будет на жестком диске создаваться?? А если их несколько? Негодный метод измерения записи! Не вижу жесткого диска в команде!

    • По факту при большом размере файла скорость показывает близкую к реальной скорости дисков. Так что я бы не был так категоричен. Покажите более надежный и простой с вашей точки зрения способ. Буду им пользоваться.

  3. Алексей

    на виртуалках выдает неверные результаты

  4. Сергей

    Домашний сервер на
    MiniITX Asus P8H77-I ОЗУ 8Gb RAID5 12Tb 4xWestern Digital Ultrastar DC HC310 4 Тб (HUS726T4TALE6L4) LSI 9265CV-8i
    # sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
    1024+0 records in
    1024+0 records out
    1073741824 bytes (1.1 GB) copied, 0.416221 s, 2.6 GB/s

    • Эта запись явно в кэш контроллера улетела. Диски так быстро писать не могут. Попробуйте гигов 10-20 записать. Интересно будет на результат посмотреть.

  5. Никита

    А вот в w10 сделали удобный мониторинг текущей загруженности харда.
    Есть вариант что-то подобное увидеть в linux, как думаете?

  6. Привет.
    А в заббиксе есть какой-нибудь стандартный способ проверить скорость чтения-записи дисков в линуксе и в вин ?
    Спасибо

    • Такого инструмента нет. Его в принципе не существует, так как чтобы измерить скорость работы диска, нужно учесть очень много факторов. Как минимум, нужно снять всю основную нагрузку на сервере, чтобы данные были хотя бы теоретически приближены к реальным. Но на работающем сервере это сделать невозможно. Тут только обходные пути возможно. Вообще, это очень нетривиальная задача.

      • Понятно, что абсолютные цифры в данном случае будут ни о чем.
        Но в динамике хотя бы можно было понимать, в какой момент и насколько изменяются показатели скорости обмена с дисками.
        Спасибо

        • Самый простой вариант, написать скрипты на команды, что я описал в своей статье про скорость диска - https://serveradmin.ru/kak-izmerit-skorost-zhestkogo-diska/ и запускать с определенным интервалом, записывая результаты. Но лично я бы так не стал делать. Такие тесты регулярная и бесполезная нагрузка на диск. Считаю, что диск надо начинать мерить, когда у сервера начинает расти load average, и причина этому не очевидна (память и проц не нагружены).

          • спасибо.
            в приницпе согласен, что "Такие тесты регулярная и бесполезная нагрузка на диск"
            Однако думал что что-то простое из коробки в zabbix есть для этого (хотя бы как perfmon /res в вин)

  7. У меня в ядре еще планировщик - deadline, ну и tune2fs ни кто не отменял. Я примерно пару лет собирал инфу и экспериментировал с тюнингом разными fs. То одно покручу, то другое. В итоге на продакшн ВОТ ТАК. Где и что крутил я уже к сожалению не помню и какие параметры за что отвечают тоже.

  8. На сервере виртуализации
    /dev/sdb1 /var/lib/libvirt/images ext4 noatime,nodiratime,noacl,data=writeback,commit=15,barrier=0,max_batch_time=30000,min_batch_time=10000
    + отключенное журналирование

  9. Сервер виртуализации
    virtserv ~ # hdparm -t /dev/sdb1
    /dev/sdb1:
    Timing buffered disk reads: 834 MB in 3.00 seconds = 277.55 MB/sec

    Гостевая система
    [root@zbx ~]# hdparm -t /dev/vda1
    /dev/vda1:
    Timing buffered disk reads: 6478 MB in 3.00 seconds = 2158.63 MB/sec

  10. Сервер виртуализации
    RAID10 4xSAS 10k RPM
    OS Gentoo

    virtserv ~ # sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
    1024+0 записей получено
    1024+0 записей отправлено
    скопировано 1073741824 байта (1,1 GB), 0,580826 c, 1,8 GB/c

    Гостевая система. CentOS 7
    [root@zbx ~]# sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
    1024+0 записей получено
    1024+0 записей отправлено
    скопировано 1073741824 байта (1,1 GB), 0,726475 c, 1,5 GB/c

    • Ого, я таких скоростей ни разу не видел. В чем секрет в данном случае? Результат даже для RAID10 очень хороший.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar