Как посмотреть нагрузку на файловую систему в Linux?

«Как посмотреть нагрузку на файловую систему в Linux?» — вопрос из категории Linux, который задают на 26% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нагрузка на дисковую подсистему — ключевой метрика для производительности и диагностики проблем (например, медленных запросов к БД). Использую следующий набор утилит:

1. Проверка использования дискового пространства (df):

# Основная команда: покажет смонтированные FS, их размер, использование и точку монтирования
# Ключ -h делает вывод «человекочитаемым» (в ГБ, МБ)
df -h

# Полезно для мониторинга inodes (при их исчерпании нельзя создавать файлы, даже если есть место)
df -i

2. Анализ вложенности и объема данных (du):

# Найти, какие директории занимают больше всего места в текущем расположении
sudo du -sh * | sort -hr | head -20

# Глубокий анализ конкретного пути (например, логов приложения)
sudo du -ah /var/log/ | sort -rh | head -30

3. Мониторинг дисковых операций ввода-вывода (IO) в реальном времени:

# iostat (из пакета sysstat) — показывает утилизацию диска, время ожидания, пропускную способность
# Ключ -x дает расширенную статистику, 2 — обновление каждые 2 секунды
iostat -x 2
# Смотрите на столбец `%util` — это процент загрузки устройства.

# iotop (требует sudo) — аналог top для дисков, показывает процессы, активно читающие/пишущие
sudo iotop -o

# dstat — универсальный инструмент, может показывать дисковую активность вместе с сетью и CPU
dstat -d --disk-util

Для DevOps: Эти команды интегрируются в системы мониторинга (например, через node_exporter для Prometheus), чтобы отслеживать disk_usage и disk_io на графиках в Grafana и настраивать алерты при достижении лимитов.