Кунг-фу стиля Linux: мониторинг дисковой подсистемы

в 9:15, , рубрики: linux, Блог компании RUVDS.com, Накопители, Настройка Linux, системное администрирование

Если, работая в Linux, нужно быстро взглянуть на сведения о работающих процессах — можно воспользоваться командой top, или — что немного лучше — командой htop. А как быть, если надо получить данные о состоянии дисковой подсистемы? Решить эту задачу помогут специализированные инструменты, некоторые из которых распространены далеко не так широко, как top.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 1

Утилита iotop

Утилита iotop очень сильно похожа на top. Она выводит сведения об общем и текущем количестве операций обращения к диску для файловой системы. Кроме того, она сообщает о том, что именно интенсивнее всего нагружает диск. Экран iotop, на первый взгляд, переполнен информацией.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 2

Работа с iotop

Вот совет по работе с этой утилитой. Если взглянуть на нижнюю часть экрана — там можно найти некоторые команды, вызываемые нажатиями на клавиши клавиатуры. Например, клавиша O скрывает (или отображает) все неактивные процессы. Это позволяет немного улучшить внешний вид сведений, выводимых iotop.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 3

Сведения об использовании дисковой подсистемы активными процессами

Того же эффекта можно добиться, запустив iotop с ключом -o. Обратите внимание на то, что другие клавиатурные команды позволяют, например, выводить сведения о потоках, а не о процессах, менять режим вывода данных, задавать классы и приоритеты ввода-вывода процессов (ionice).

Утилита iostat

Если вас больше интересуют данные, относящиеся к самим дискам, а не к процессам или потокам, можете попробовать команду iostat. Она тоже выводит некоторые данные о процессах, но они представлены в обобщённом виде.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 4

Работа с iostat

Эта команда запускается, собирает данные и выводит их, не обновляя в режиме реального времени. Если нужно периодически её перезапускать — можно, при её запуске, указать промежуток времени между получениями новых отчётов, и, что необязательно, общее количество перезапусков. При этом, если нужно, можно воспользоваться ключом командной строки -t для получения сведений о времени.

iostat -t 5

Правда, это приводит к прокрутке выходных данных программы. Если вы занимаетесь мониторингом дисковой активности, то, возможно, вам лучше подойдёт такой вариант запуска iostat:

watch -n 5 iostat

Если запустить утилиту с ключом -x — можно получить более подробные сведения о дисках. Флаг -z позволяет отключить вывод сведений об устройствах, на которых нет данных.

Утилита duf

Вы, вероятно, не найдёте в своей системе утилиту duf. Если это так — можете установить её с GitHub. Те же результаты, правда, можно получить, воспользовавшись df и ещё некоторыми командами, но преимущество duf заключается в том, что эта программа представляет данные в удобном для просмотра виде.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 5

Работа с duf

При запуске этой утилиты можно воспользоваться опциями командной строки, которые позволяют скрывать устройства, задавать ширину таблиц, выводимых на экране, по-разному сортировать выводимые данные. Ещё можно указать максимальную ширину таблиц, генерируемых программой. Подробности о работе с duf можно узнать, запустив утилиту с ключом --help.

Вывод сведений об открытых файлах с помощью lsof

Если нужно узнать о том, какие именно файлы открыты в системе, сделать это можно с помощью команды lsof. Она выводит подробную информацию, а в работающих системах обычно открыто очень много файлов. Поэтому lsof обычно используют, указывая имя файла, или комбинируя этот приём с grep. Это позволяет узнать сведения только о том, что нужно.

При использовании lsof нужно помнить о том, что шаблоны тут, по умолчанию, не работают. Поэтому следующая команда выведет лишь сведения о директории /home/alw. А вот, например, сведения о процессах, которые открыли какие-нибудь файлы в этой директории, такая команда не выведет.

lsof /home/alw

Для того чтобы это изменить, можно запустить lsof с ключом -d или -D. Ключ, представленный буквой в нижнем регистре, приводит к поиску директорий и файлов на верхнем уровне. Ключ -D выполняет рекурсивный поиск. Эта команда поддерживает и много других опций, которые можно применять, например, для поиска файлов, открытых пользователем с заданным ID, или для поиска по заданному имени команды.

Дополнительный инструмент: atop

Одной из замен команды top является atop. Хотя эта команда и не нацелена исключительно на мониторинг дисковых операций, она даёт сведения о том, как процессы пользуются дисками, и, кроме того, предоставляет некоторые сводные сведения. Обычно после запуска atop в верхней части формируемого ей вывода имеется строка DSK, в которой присутствуют сведения о диске. Эти данные, по мере приближения уровня использования диска к 100%, выделяются красным цветом. Данные, выводимые в нижней части, похожи на те, что даёт команда top.

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 6

Работа с atop

Для сортировки процессов по уровню использования дисков можно воспользоваться клавишей D. Это — полезный инструмент.

Итоги

Для того чтобы получить сведения о дисках в Linux можно применить десятки различных инструментов. Собственно говоря, нечто подобное справедливо и для решения многих других задач. Если вам интересны подробности о том, что именно выводит htop (похожие данные формируют, кроме того, top и atop) — взгляните на этот материал.

Как вы мониторите дисковую подсистему в Linux?

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 7

Кунг-фу стиля Linux: мониторинг дисковой подсистемы - 8

Автор: ru_vds

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js