Навантаження на диск: iostat та iotop
Як визначити, чи машина впирається в диск, хто саме пише і як співвіднести цифри з обмеженням швидкості на вашому тарифі VPS.
Оновлено 23 серпня 2026 р.
Диск — найпоширеніша причина ситуації «все гальмує, а процесор простоює». Процеси чекають на введення-виведення, середнє навантаження зростає, а htop показує майже нульовий CPU%. Розберімо, як побачити це в цифрах.
Що вам виділено
Диски на вузлах — NVMe, але швидкість обмежена тарифом: запис — 60 МБ/с на ядро, але не менше ніж 60 і не більше ніж 400 МБ/с; читання — удвічі швидше за запис. Понад ліміт дозволено сплеск утричі вищий протягом 30 секунд — цього досить, щоб розпакувати архів чи зібрати проєкт, але не щоб безперервно завантажувати терабайт.
| Тариф | Ядра | Запис, МБ/с | Читання, МБ/с |
|---|---|---|---|
| VDS-1 | 1 | 60 | 120 |
| VDS-2 | 2 | 120 | 240 |
| VDS-3 | 4 | 240 | 480 |
| VDS-4 | 6 | 360 | 720 |
| VDS-5 і VDS-6 | 8 і 10 | 400 | 800 |
Якщо ваші виміри впираються точно в ці числа, ви досягли ліміту — нічого не зламалося. Далі допомагає лише перехід на вищий тариф.
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— це займає одну секунду.