← Назад к вопросам

Какие знаешь команды для проверки загруженности диска?

1.0 Junior🔥 191 комментариев
#Linux и администрирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Команды для мониторинго загруженности дисков в Linux

Для проверки загруженности дисков в Linux существует несколько ключевых утилит, которые предоставляют различную детализацию и углы анализа. Эти команды критически важны для DevOps Engineer, так как загрузка дисков напрямую влияет на производительность приложений, стабильность баз данных и работу всей системы. Мониторинг дискового пространства и ввода-вывода (I/O) — основа предотвращения инцидентов.

Основные утилиты для анализа дискового пространства (Disk Usage)

Эти команды отвечают на вопрос "Сколько места занято?".

  1. df (disk free) — показывает свободное и использованное пространство на смонтированных файловых системах. Ключевые флаги:
    # Базовая информация в удобочитаемом формате (human-readable)
    df -h
    
    # Показать тип файловой системы
    df -hT
    
    # Показать только определенную файловую систему (например, ext4)
    df -ht ext4
    
    # Исключить псевдо-файловые системы (tmpfs, devtmpfs)
    df -hx tmpfs -x devtmpfs
    
    Вывод `df` дает общую картину: какие разделы близки к заполнению (например, 95% на `/` или `/var`).

  1. du (disk usage) — оценивает использование диска каталогами и файлами. Это инструмент для "глубокого" поиска потребителей пространства.
    # Показать суммарный размер текущего каталога в удобочитаемом виде
    du -sh .
    
    # Показать топ-10 самых крупных подкаталогов в /var
    du -h /var | sort -rh | head -10
    
    # Детальный обход с указанием размера каждого элемента на 1 уровне глубины
    du -h --max-depth=1 /home
    
    # Найти все файлы больше 100Мб в текущем каталоге и его подкаталогах
    find . -type f -size +100M -exec du -h {} + | sort -rh
    

Продвинутые утилиты для мониторинга операций ввода-вывода (Disk I/O)

Эти команды отвечают на вопрос "Насколько диски загружены операциями чтения/записи?".

  1. iostat (из пакета sysstat) — предоставляет подробную статистику по использованию CPU и устройств ввода-вывода, включая утилизацию диска, среднее время ожидания и пропускную способность.

    # Показать одну сводную статистику с момента загрузки
    iostat
    
    # Показать расширенную статистику по дискам каждые 2 секунды, 3 раза
    iostat -dx 2 3
    
    # Ключевые метрики в выводе:
    # %util - процент утилизации устройства (близко к 100% — узкое место)
    # await - среднее время ожидания запроса (мс)
    # r/s, w/s - количество операций чтения/записи в секунду
    # rkB/s, wkB/s - пропускная способность (КБ/с)
    
  2. iotop — аналог top для операций ввода-вывода. Показывает в реальном времени, какие процессы активно нагружают диски.

    # Запуск с выводом накопленной статистики (а не с момента старта)
    sudo iotop -oPa
    
    # Ключевые колонки:
    # IO> - процент времени, которое процесс тратил на ввод/вывод
    # DISK READ / DISK WRITE - скорость чтения/записи для процесса
    
  3. dstat — универсальный инструмент мониторинга, объединяющий функции vmstat, iostat, netstat. Позволяет гибко настраивать выводимые параметры.

    # Показать использование CPU, диска (чтение/запись) и сети каждую секунду
    dstat -cdngy 1
    
    # Показать подробную статистику по дискам с разбивкой по устройствам
    dstat -D sda,sdb,total
    

Практическое применение в DevOps

В работе DevOps Engineer эти команды используются не изолированно, а в контексте:

  • Настройки мониторинга (Prometheus, Grafana): Агенты (node_exporter) собирают метрики, аналогичные данным df, iostat, которые затем визуализируются и настраиваются алерты (например, "диск заполнен на 85%" или "утилизация диска > 90%").
  • Автоматизации: Скрипты на bash или Python, использующие df и du, могут автоматически очищать логи (logrotate), архивировать старые данные или отправлять уведомления.
  • Расследования инцидентов: При жалобах на "тормоза" системы iotop и iostat помогают быстро определить, является ли узким местом дисковый I/O, и выявить процесс-виновника (например, неоптимальный запрос к базе данных, leading к high load на диск).
  • Планирования емкости (Capacity Planning): Тренды использования пространства (из данных df, собираемых в течении времени) помогают прогнозировать, когда потребуется добавлять дисковое пространство.

Таким образом, мастерство DevOps Engineer заключается не просто в знании команд, а в умении интерпретировать их вывод, интегрировать данные в системы мониторинга и принимать проактивные меры на основе этих метрик для обеспечения надежности и производительности инфраструктуры.