Linux DSK-SAT-01Высокая

Высокое использование диска в Linux (Disk Saturation)

Проблема высокой насыщенности диска (disk saturation) возникает, когда операции ввода-вывода достигают предела пропускной способности накопителя. Это приводит к замедлению системы и проблемам с производительностью.

Обновлено 13 февраля 2026 г.
15-45 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04/22.04Debian 11/12CentOS 7/8RHEL 8/9

Высокое использование диска в Linux (Disk Saturation)

Что такое насыщение диска?

Насыщение диска (Disk Saturation) — это состояние, при котором накопитель не справляется с объёмом поступающих запросов на запись и чтение данных. В отличие от простой высокой загрузки, насыщение означает, что диск работает на пределе своих возможностей, и любые дополнительные операции вызывают задержки в очереди.

Показатель насыщения:
- До 50% — нормальная работа
- 50-80% — повышенная нагрузка
- 80-100% — критическое насыщение

Симптомы проблемы

При насыщении диска в Linux наблюдаются следующие признаки:

  • Замедление системы — приложения долго запускаются и реагируют на действия пользователя
  • Высокий iowait — процессор тратит много времени на ожидание операций ввода-вывода
  • Зависание файловых операций — копирование, запись и чтение файлов происходят с задержками
  • Проблемы с журналированием — записи в системные логи могут отставать

Диагностика насыщения диска

1. Использование iostat

Установите пакет sysstat и выполните:

iostat -x 1

Обратите внимание на следующие метрики:

ПараметрОписаниеКритическое значение
%utilПроцент времени CPU, занятого обработкой I/O запросов> 80%
r/s, w/sКоличество операций чтения/записи в секундуЗависит от типа диска
r_await, w_awaitСреднее время ожидания операций чтения/записи> 20 мс

2. Проверка iowait через top

top

В верхней строке отображается параметр wa (iowait):

%Cpu(s):  5.2 us,  2.1 sy,  0.0 ni, 72.3 id, 18.4 wa,  0.0 hi,  2.0 si,  0.0 st

Если wa превышает 20-30%, это указывает на проблемы с диском.

3. Мониторинг процессов с iotop

sudo iotop

Эта команда показывает процессы, активно использующие диск:

Total DISK READ:       0.00 B/s | Total DISK WRITE:     150.23 M/s
TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO COMMAND
1247 be/4 root        0.00 B/s  150.23 M/s  0.00 %  0.00 % dd if=/dev/zero of=/test

4. Анализ с помощью vmstat

vmstat 1

Ключевые колонки:

  • si (swap in) — данные, загруженные из swap
  • so (swap out) — данные, выгруженные в swap
  • wa — iowait

Типичные причины насыщения

1. Интенсивная запись логов

# Проверка размера директории логов
du -sh /var/log/*

# Мониторинг активности записи
sudo lsof | grep -E "REG|/var/log"

2. Работа с большими базами данных

Базы данных PostgreSQL, MySQL, MongoDB активно используют диск при:

  • Выполнении тяжёлых запросов
  • Проведении операций VACUUM/индексации
  • Записи транзакционных логов

3. Недостаток оперативной памяти

При нехватке RAM система активно использует swap:

# Проверка использования swap
swapon --show
free -h

4. Фрагментация файловой системы

# Проверка фрагментации (для ext4)
sudo fsck -n /dev/sda1

Способы устранения проблемы

Краткосрочные решения

  1. Остановка ресурсоёмких процессов
    # Найдите процессы с высоким I/O
    ps aux | awk '$8 ~ /D/ {print $0}'
    # D — состояние uninterruptible sleep (обычно ожидание I/O)
    
  2. Очистка временных файлов
    # Очистка кэша пакетов
    sudo apt clean
    
    # Очистка старых логов
    sudo journalctl --vacuum-time=7d
    
  3. Очистка swap (если много свободной памяти)
    sudo swapoff -a && sudo swapon -a
    

Долгосрочные решения

  1. Переход на SSD
    Замена HDD на SSD значительно повышает производительность I/O:
    # Проверка типа диска
    lsblk -d -o NAME,TYPE,ROTA
    # ROTA=1 — HDD, ROTA=0 — SSD
    
  2. Настройка I/O Scheduler
    Для SSD рекомендуется использовать none или mq-deadline:
    # Просмотр текущего планировщика
    cat /sys/block/sda/queue/scheduler
    
    # Установка планировщика
    echo "mq-deadline" | sudo tee /sys/block/sda/queue/scheduler
    
  3. Оптимизация приложений
    • Настройте буферизацию и кэширование в приложениях
    • Используйте асинхронные операции записи
    • Разнесите операции чтения и записи по времени
  4. Мониторинг и алертинг
    Настройте систему мониторинга (Prometheus, Zabbix, Nagios) для отслеживания:
    • Процента использования диска (%util)
    • Времени ожидания I/O (await)
    • Значения iowait

Профилактика

  • Регулярно очищайте логи и временные файлы
  • Следите за свободным местом на диске
  • Настройте ротацию логов
  • Используйте мониторинг для раннего обнаружения проблем
  • Планируйте ёмкость хранилища с запасом 20-30%

Заключение

Насыщение диска — серьёзная проблема, влияющая на производительность всей системы. Своевременная диагностика с помощью iostat, iotop и vmstat позволяет быстро определить причину высокой нагрузки. Комплексный подход, включающий как немедленные меры, так и долгосрочную оптимизацию (переход на SSD, настройка планировщика, оптимизация приложений), поможет решить проблему и предотвратить её повторное возникновение.

Часто задаваемые вопросы

Как быстро проверить насыщение диска?
Чем отличается насыщение диска от высокой загрузки CPU iowait?

Полезное

Определение насыщения диска
Поиск процессов, нагружающих диск
Анализwait времени
Оптимизация производительности