Как проверить скорость диска и сети на VPS
Скорость диска на VPS быстро проверяется командой dd (линейная запись) и точнее — утилитой fio (IOPS случайного доступа), а пропускную способность сети измеряет speedtest-cli. Ниже — точные команды и как читать результаты.
Что и чем измерять
- Линейная скорость диска (МБ/с) —
dd, простой ориентир. - IOPS и случайный доступ —
fio, реальная нагрузка баз данных и веб-приложений. - Скорость сети до интернета —
speedtest-cli. - Пропускная способность между серверами —
iperf3.
Тест диска через dd
Быстрая проверка линейной записи. Пишем файл на 1 ГБ:
dd if=/dev/zero of=/root/testfile bs=1M count=1024 oflag=direct
oflag=direct обходит кэш ОС и показывает реальную скорость диска. В конце вывода будет строка вида 1073741824 bytes ... copied, 2.5 s, 429 MB/s.
Удалите тестовый файл:
rm -f /root/testfile
dd удобен, но не отражает случайный доступ. Для этого нужен fio.
Точный тест через fio
Установка:
apt install -y fio
Случайное чтение/запись (типичная нагрузка)
fio --name=randrw --ioengine=libaio --direct=1 \
--rw=randrw --rwmixread=70 --bs=4k --size=1G \
--numjobs=4 --runtime=60 --group_reporting
Что смотреть в выводе:
- IOPS — число операций в секунду (главный показатель для БД);
- BW — пропускная способность;
- lat (latency) — задержка отклика.
Случайная запись 4k (нагрузка на запись)
fio --name=randwrite --ioengine=libaio --direct=1 \
--rw=randwrite --bs=4k --size=1G --numjobs=1 \
--runtime=30 --group_reporting
Удалите временные файлы fio после тестов:
rm -f randrw.* randwrite.*
Ориентиры производительности
| Тип диска | Линейная запись | IOPS 4k |
|---|---|---|
| HDD | 80–160 МБ/с | 100–200 |
| SATA SSD | 300–500 МБ/с | 10–40 тыс. |
| NVMe SSD | 1–3+ ГБ/с | 100+ тыс. |
Цифры на виртуальном VPS зависят от соседей по хосту и лимитов гипервизора.
Тест скорости сети через speedtest-cli
Установка официального клиента Ookla:
apt install -y speedtest-cli
Запуск:
speedtest-cli
Утилита выберет ближайший сервер и покажет ping, download и upload. Для конкретного сервера:
speedtest-cli --list | head
speedtest-cli --server <ID>
Тест между серверами через iperf3
Полезно для проверки канала между вашими VPS. На сервере-приёмнике:
apt install -y iperf3
iperf3 -s
На втором сервере (клиент):
iperf3 -c <IP_первого_сервера>
Вывод покажет реальную пропускную способность канала в обе стороны.
Проверка задержки
ping -c 10 8.8.8.8
mtr -rwc 100 8.8.8.8
mtr покажет потери и задержку на каждом узле маршрута.
Тест диска через sysbench
sysbench удобен для комплексной оценки. Установка и подготовка файлов:
apt install -y sysbench
sysbench fileio --file-total-size=2G prepare
Тест случайного чтения/записи:
sysbench fileio --file-total-size=2G --file-test-mode=rndrw \
--time=60 --max-requests=0 run
После теста уберите за собой:
sysbench fileio --file-total-size=2G cleanup
sysbench также умеет нагружать CPU (sysbench cpu run) и память (sysbench memory run) — полезно для общей оценки VPS.
Проверка скорости загрузки файла
Быстрый практичный тест — скачать крупный файл и посмотреть реальную скорость канала:
curl -o /dev/null http://speedtest.selectel.ru/100MB
wget -O /dev/null http://speedtest.selectel.ru/100MB
curl покажет среднюю скорость в конце. Это отражает реальную загрузку, а не идеализированный speedtest.
Как правильно интерпретировать результаты
- Запускайте каждый тест 3–5 раз и берите среднее — разовый замер может попасть на пиковую нагрузку соседей по хосту.
- Тестируйте на пустом (не рабочем) сервере: параллельные процессы искажают цифры.
- Сравнивайте с ориентирами из таблицы выше, а не с абсолютными «рекордами» — на виртуализации важнее стабильность, чем пиковые значения.
- Задержка (latency) для БД важнее пропускной способности: даже быстрый диск с высокой задержкой замедлит приложение.
Частые вопросы
Почему dd показывает разную скорость при повторе?
Без oflag=direct данные попадают в кэш ОС и цифры завышены. Всегда используйте oflag=direct для реального результата.
Что важнее — линейная скорость или IOPS? Для баз данных и веб-приложений критичны IOPS и задержка случайного доступа, а не линейная скорость.
Скорость сети ниже заявленной — это нормально? Speedtest зависит от выбранного сервера и загрузки канала. Проверьте несколько серверов и время суток.
Влияют ли соседи по хосту на результат? На виртуальном VPS — да. Показатели могут колебаться. Меряйте несколько раз в разное время.
Как проверить диск без установки fio?
Через dd с oflag=direct — грубо, но быстро. Для точных IOPS всё же нужен fio.
Нужна стабильная производительность? Берите аренду VPS на NVMe или VPS для VPN и безопасности. Подбор конфигурации и оптимизацию сделает Администрирование серверов.
