VDS · Резервные копии и диск

Скорость диска: полка и всплеск

Как считается ограничение скорости диска по ступеням, зачем нужен всплеск на 30 секунд, как измерить реальную скорость и что делать, если вы в неё упёрлись.

Обновлено 23 августа 2026 г.

Диск на VDS — NVMe, но скорость ограничена по ступени, чтобы одна машина не выедала общий ресурс узла. Понимание этих чисел избавляет от вопроса «почему база тормозит, хотя процессор свободен».

Как считается

Полка по записи — 60 МБ/с на ядро, но не ниже 60 и не выше 400 МБ/с. Чтение вдвое выше полки записи. Сверх полки доступен всплеск втрое выше её значения, длительностью 30 секунд.

СтупеньЯдраЗапись, полкаЧтение, полкаВсплеск записи (30 с)
VDS-1160 МБ/с120 МБ/с180 МБ/с
VDS-22120 МБ/с240 МБ/с360 МБ/с
VDS-34240 МБ/с480 МБ/с720 МБ/с
VDS-46360 МБ/с720 МБ/с1080 МБ/с
VDS-58400 МБ/с800 МБ/с1200 МБ/с
VDS-610400 МБ/с800 МБ/с1200 МБ/с

Всплеск закрывает то, что и должен: старт приложения, распаковку архива, накат миграции. Ровный поток на запись — копирование гигабайтов, сборка, перебор большой базы — идёт по полке.

Как измерить

sudo apt install -y fio
fio --name=w --rw=write --bs=1M --size=2G --numjobs=1 \
    --runtime=60 --time_based --end_fsync=1 --directory=/var/tmp

Первые секунды покажут всплеск, дальше скорость сядет на полку — это нормальная и ожидаемая картина, а не неисправность.

Быстрая грубая проверка без установки пакетов:

dd if=/dev/zero of=/var/tmp/testfile bs=1M count=2048 oflag=direct
rm /var/tmp/testfile

Не гоняйте тесты диска на боевой машине в рабочее время. Тест честно займёт всю доступную полосу, и ваш сайт в эти минуты будет отвечать секундами. И не оставляйте тестовые файлы: два гигабайта на диске 40 ГБ — заметная доля, см. место на диске.

Как понять, что упёрлись именно в диск

sudo apt install -y sysstat
iostat -x 2 5
vmstat 2 5

Смотрите два показателя: %util близко к 100 и await в десятках миллисекунд означают очередь к диску. В vmstat признак тот же — растущий столбец b (процессы в ожидании) при низком проценте занятости процессора.

Ещё один симптом: высокий load average при почти простаивающем процессоре. Нагрузка в Linux считает и процессы, ждущие диск.

Кто именно пишет:

sudo iotop -o -b -n 3

Что делать, если упёрлись

  • Разнести по времени. Копии, сборка реестра, отчёты — на ночь и не одновременно. См. задания по расписанию.
  • Ограничить фоновые задачи. rsync --bwlimit, nice -n 19 ionice -c3 <команда> для всего, что не срочно.
  • Уменьшить запись. Ограничить размер журналов, отключить излишнюю подробность в приложении, вынести кеш в память (tmpfs), если он переживёт перезагрузку.
  • Настроить базу. У PostgreSQL и MySQL львиная доля записи — журнал транзакций. Больше памяти под буферы — меньше обращений к диску.
  • Перейти на ступень выше. Полка растёт вместе с ядрами: с VDS-1 на VDS-2 — вдвое. Улучшение тарифа возможно только вверх, с доплатой за оставшиеся дни оплаченного срока.

Частые ошибки

  • Меряют скорость через dd без oflag=direct. Данные оседают в кеше страницы, и цифры получаются фантастические.
  • Считают всплеск постоянной скоростью. Первые 30 секунд быстро, потом полка — это заложенное поведение.
  • Держат подкачку на активном диске и уходят в неё. Своп при нехватке памяти превращает диск в узкое место: лучше ограничить контейнеры, см. ограничения ресурсов.