Skip to content
VDS · Моніторинг і продуктивність

Навантаження на диск: iostat та iotop

Як визначити, чи машина впирається в диск, хто саме пише і як співвіднести цифри з обмеженням швидкості на вашому тарифі VPS.

Оновлено 23 серпня 2026 р.

Диск — найпоширеніша причина ситуації «все гальмує, а процесор простоює». Процеси чекають на введення-виведення, середнє навантаження зростає, а htop показує майже нульовий CPU%. Розберімо, як побачити це в цифрах.

Що вам виділено

Диски на вузлах — NVMe, але швидкість обмежена тарифом: запис — 60 МБ/с на ядро, але не менше ніж 60 і не більше ніж 400 МБ/с; читання — удвічі швидше за запис. Понад ліміт дозволено сплеск утричі вищий протягом 30 секунд — цього досить, щоб розпакувати архів чи зібрати проєкт, але не щоб безперервно завантажувати терабайт.

ТарифЯдраЗапис, МБ/сЧитання, МБ/с
VDS-1160120
VDS-22120240
VDS-34240480
VDS-46360720
VDS-5 і VDS-68 і 10400800

Якщо ваші виміри впираються точно в ці числа, ви досягли ліміту — нічого не зламалося. Далі допомагає лише перехід на вищий тариф.

iostat: загальна картина

apt install -y sysstat       # Debian, Ubuntu
dnf install -y sysstat       # AlmaLinux, CentOS Stream

iostat -xz 2

Команда виводить знімок кожні дві секунди. Перший вивід — середнє від моменту завантаження, його пропускайте. Дивіться на рядок vda або sda:

  • r/s, w/s — операції читання й запису за секунду.
  • rkB/s, wkB/s — мегабайти, поділіть на 1024. Порівняйте з таблицею вище.
  • await — середній час очікування на операцію в мілісекундах. Одиниці — норма; десятки й сотні означають чергу.
  • %util — наскільки зайнятий диск. Стабільні 90–100 % означають, що ви вперлися в стіну.

vmstat 2 теж стане в пригоді: стовпець wa (очікування введення-виведення) показує у відсотках, скільки часу процесор просто чекає на диск.

iotop: хто саме пише

apt install -y iotop && iotop -oPa

-o показує лише активні процеси, -P — процеси замість потоків, -a — накопичений обсяг від запуску. Поглянувши хвилину, ви побачите справжнього винуватця: зазвичай це база даних, збирач логів або резервне копіювання.

Разова перевірка без інтерактивного інтерфейсу:

iotop -boPan 3 | head -20

Що робити з тим, що знайшли

  • Пише журнал. Обмежте його розмір: journalctl --vacuum-size=200M і SystemMaxUse=200M у /etc/systemd/journald.conf. Докладніше — у Журнали systemd.
  • Пише база даних. Перевірте, чи не виконується повне сканування таблиці через відсутній індекс і чи не задано буфер замалим, через що все скидається на диск.
  • Резервне копіювання або rsync у робочі години. Обмежте швидкість: rsync --bwlimit=20M; для архівування використовуйте ionice -c3 nice -n19 tar ..., щоб завдання поступалося ресурсами.
  • Swap. Якщо диск зайнятий підкачуванням, проблема не в диску, а в пам'яті — читайте Пам'ять і swap.

Типові помилки

Вимірювати швидкість через dd з conv=fdatasync і робити висновки з одного запуску: перші секунди працюють на сплеску й дають завищений результат. Правильна методика — у Тестування швидкості диска й мережі.

Заповнений диск теж виглядає як «все гальмує»: вільного місця немає, служба не може записати тимчасовий файл і зависає. Спершу перевірте df -h — це займає одну секунду.