Простая проверка скорости работы диска в Linux, позволяет определить реальную скорость чтения и записи с диска. Один из сценариев когда в VPS заявляют что диск SSD, при этом он не обеспечивает скорость работы свойственную твердотельным дискам.
Так же, данное тестирование, может пригодится при проектировании и систем, для учета нагрузку на дисковую подсистему.
Скрипт тестирования скорости диска
Для тестирования используется следующий скрипт, работающий на всех дистрибутивах Linux. Создаем файл, к примеру hdd_speed.sh со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash tmpfile=tempfile BYTES=1M COUNT=1024 /sbin/sysctl -w vm.drop_caches=3 echo "Write to Hdd" sync; dd if=/dev/zero of=$tmpfile bs=$BYTES count=$COUNT; sync echo "Read from Hdd" dd if=$tmpfile of=/dev/null bs=$BYTES count=$COUNT rm -f $tmpfile |
В процессе работы скрипт очищает файловый и дисковый кеш, для получения более точных результатов.
Параметры
- tmpfile - имя временного файла, при необходимости можно указать путь
- BYTES - Количество данных записываемая за цикл
- COUNT - количество циклов
В обычно сценарии изменения параметров не требуется
Запуск скрипта тестирования скорости диска в Linux
Для тестирования скорости, помещаем скрипт в нужный раздел, либо меняем переменную tmpfile
1 | bash hdd_speed.sh |
Примеры запуска скрипта тестирования скорости диска
Сервер с простыми HDD дисками
1 2 3 4 5 6 7 8 9 10 | bash hdd_speed.sh vm.drop_caches = 3 Write to Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.8722 s, 277 MB/s Read from Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.84827 s, 581 MB/s |
Тест одного из хостеров.
судя по скорости чтения SSD, но явно не самые быстрые.
1 2 3 4 5 6 7 8 9 10 | bash hdd_speed.sh vm.drop_caches = 3 Write to Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.65961 s, 647 MB/s Read from Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.32285 s, 3.3 GB/s |
Сервер с SSD диском
1 2 3 4 5 6 7 8 9 10 | bash hdd_speed.sh vm.drop_caches = 3 Write to Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.809999 s, 1.3 GB/s Read from Hdd 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.17818 s, 6.0 GB/s |