Какие знаешь команды для проверки загруженности диска?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Команды для мониторинго загруженности дисков в Linux
Для проверки загруженности дисков в Linux существует несколько ключевых утилит, которые предоставляют различную детализацию и углы анализа. Эти команды критически важны для DevOps Engineer, так как загрузка дисков напрямую влияет на производительность приложений, стабильность баз данных и работу всей системы. Мониторинг дискового пространства и ввода-вывода (I/O) — основа предотвращения инцидентов.
Основные утилиты для анализа дискового пространства (Disk Usage)
Эти команды отвечают на вопрос "Сколько места занято?".
df(disk free) — показывает свободное и использованное пространство на смонтированных файловых системах. Ключевые флаги:# Базовая информация в удобочитаемом формате (human-readable) df -h # Показать тип файловой системы df -hT # Показать только определенную файловую систему (например, ext4) df -ht ext4 # Исключить псевдо-файловые системы (tmpfs, devtmpfs) df -hx tmpfs -x devtmpfs
Вывод `df` дает общую картину: какие разделы близки к заполнению (например, 95% на `/` или `/var`).
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)
Эти команды отвечают на вопрос "Насколько диски загружены операциями чтения/записи?".
-
iostat(из пакетаsysstat) — предоставляет подробную статистику по использованию CPU и устройств ввода-вывода, включая утилизацию диска, среднее время ожидания и пропускную способность.# Показать одну сводную статистику с момента загрузки iostat # Показать расширенную статистику по дискам каждые 2 секунды, 3 раза iostat -dx 2 3 # Ключевые метрики в выводе: # %util - процент утилизации устройства (близко к 100% — узкое место) # await - среднее время ожидания запроса (мс) # r/s, w/s - количество операций чтения/записи в секунду # rkB/s, wkB/s - пропускная способность (КБ/с) -
iotop— аналогtopдля операций ввода-вывода. Показывает в реальном времени, какие процессы активно нагружают диски.# Запуск с выводом накопленной статистики (а не с момента старта) sudo iotop -oPa # Ключевые колонки: # IO> - процент времени, которое процесс тратил на ввод/вывод # DISK READ / DISK WRITE - скорость чтения/записи для процесса -
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 заключается не просто в знании команд, а в умении интерпретировать их вывод, интегрировать данные в системы мониторинга и принимать проактивные меры на основе этих метрик для обеспечения надежности и производительности инфраструктуры.