Ответ
IOWait (или %iowait) — это метрика, отображаемая в утилитах мониторинга (например, top, vmstat, iostat), которая показывает процент времени, в течение которого центральный процессор (CPU) был простаивал в ожидании завершения операций ввода-вывода (I/O) на диск.
Ключевое понимание: Высокий показатель iowait не означает, что CPU «занят» I/O. Наоборот, он означает, что CPU готов к работе, но не может выполнять задачи, потому что ожидает данных от более медленной подсистемы (чаще всего — диска).
Как посмотреть iowait:
# В top (строка 'Cpu(s):')
top
# С помощью vmstat (колонка 'wa')
vmstat 1 5
# С помощью iostat (колонка '%iowait')
iostat -c 1 3
# Краткий вывод нагрузки (1-я строка - среднее с boot, далее - за 1 сек)
uptime
Интерпретация значений:
- < 5%: Обычно норма.
- 5-20%: Умеренная нагрузка на I/O, требует наблюдения.
- > 20-30%: Высокая нагрузка, вероятно, есть узкое место в подсистеме хранения.
- > 50%: Серьёзная проблема с производительностью дисков.
Нюансы и анализ в DevOps:
- Контекст нагрузки CPU: Высокий iowait при низкой общей утилизации CPU (
%idleвысокий) менее критичен, чем тот же iowait при высокой утилизации CPU — в первом случае система просто «ждёт», во втором — процессы в очереди. - Не является прямой метрикой диска: Iowait показывает нагрузку на CPU со стороны I/O. Для анализа самой дисковой подсистемы используйте
iostat -xи смотрите метрики:%util: Процент загрузки устройства.await: Среднее время ожидания I/O-операции (мс).svctm: Среднее время обслуживания запроса устройством (устарело в новых ядрах).
- Причины высокого iowait:
- Медленные диски (HDD vs SSD).
- Высокая нагрузка на базу данных.
- Активная работа с логами (journaling, sync).
- Нехватка оперативной памяти, ведущая к активному своппингу.
- В облачных средах (AWS EBS, GCP Persistent Disk) — может указывать на исчерпание IOPS или пропускной способности.
Действия при высокой нагрузке: Использовать iotop или pidstat -d для идентификации процессов, создающих нагрузку, и далее оптимизировать их работу или апгрейдить инфраструктуру хранения.