< meta name="referrer" content="origin">
Home » Полезные советы » Как измерить скорость жесткого диска

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

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

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

Проще всего измерить скорость диска с помощью программы 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

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

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


Помогла статья? Есть возможность отблагодарить автора

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

  1. Сервер виртуализации
    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 очень хороший.

  2. Сервер виртуализации
    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

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

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

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

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

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

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

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

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

Ваш e-mail не будет опубликован.