Полезные инструменты для мониторинга и отладки производительности дискового ввода-вывода в Linux

Ключевым показателем производительности для мониторинга на сервере Linux является активность дискового ввода-вывода, которая может значительно повлиять на некоторые аспекты сервера Linux, в частности, на скорость сохранения или извлечения с диска файлов или данных (особенно на серверах баз данных). Это оказывает волновое влияние на производительность приложений и служб.

1. iostat — показывает статистику ввода и вывода устройства

iosat — одна из многих утилит мониторинга системы на основе терминала в пакете sysstat, который является широко используемой утилитой, предназначенной для создания отчетов о статистике ЦП и статистике ввода-вывода для блочных устройств и разделов.

Чтобы использовать iostat на сервере Linux, вам необходимо установить пакет sysstat в вашей системе Linux, выполнив соответствующую команду для вашего дистрибутива Linux.

$ sudo apt install sysstat          [On Debian, Ubuntu and Mint]
$ sudo yum install sysstat          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a app-admin/sysstat  [On Gentoo Linux]
$ sudo apk add sysstat              [On Alpine Linux]
$ sudo pacman -S sysstat            [On Arch Linux]
$ sudo zypper install sysstat       [On OpenSUSE]

Чтобы показать простой отчет об использовании устройства, запустите iostat с параметром командной строки -d. Обычно первый отчет содержит статистику о времени, прошедшем с момента запуска системы (время загрузки), а каждый последующий отчет касается времени, прошедшего с момента предыдущего отчета.

Используйте -x для расширенного статистического отчета и флаг -t, чтобы включить время для каждого отчета. Кроме того, если вы хотите исключить устройства без какой-либо активности в выводе отчета, добавьте флаг -z:

# iostat -d -t 
OR
# iostat -d -x -t

Чтобы отображать статистику в килобайтах в секунду, а не в блоках в секунду, добавьте флаг -k или используйте флаг -m для отображения статистики в мегабайтах в секунду.

# iostat -d -k
OR
# iostat -d -m

iostat также может отображать непрерывные отчеты об устройствах с интервалом x секунд. Например, следующая команда отображает отчеты с интервалом в две секунды:

# iostat -d 2

Как и в предыдущей команде, вы можете отображать n отчетов с интервалом в x секунд. Следующая команда отобразит 10 отчетов с интервалом в две секунды. Кроме того, вы можете сохранить отчет в файл для последующего анализа:

# iostat -d 2 10
OR
# iostat -d 2 10 > disk_io_report.txt &

Для получения дополнительной информации о столбцах отчета прочитайте справочную страницу iostat:

# man iostat

2. sar — Показать активность системы Linux

sar — еще одна полезная утилита, входящая в состав пакета sysstat и предназначенная для сбора, составления отчетов или сохранения информации об активности системы. Прежде чем вы сможете начать использовать его, вам необходимо настроить его следующим образом.

Во-первых, включите его для сбора данных в файле /etc/default/sysstat.

# vi /etc/default/sysstat

Найдите следующую строку и измените значение на «true», как показано.

ENABLED="true"

Затем вам нужно уменьшить интервал сбора данных, определенный в заданиях sysstat cron. По умолчанию установлено каждые 10 минут, вы можете уменьшить его до каждых 2 минут.

Вы можете сделать это в файле /etc/cron.d/sysstat:

# vi /etc/cron.d/sysstat

Сохраните файл и закройте его.

Наконец, включите и запустите службу sysstat с помощью следующей команды systemctl:

# systemctl enable --now sysstat.service
# systemctl enable sysstat.service

Далее подождите 2 минуты, чтобы начать просмотр отчетов sar. Используйте команду sar и параметр командной строки -b, чтобы сообщить статистику ввода-вывода и скорости передачи, и -d, чтобы сообщить об активности для каждого блочного устройства, как показано.

# sar -d -b

3. iotop — мониторинг использования дискового ввода-вывода Linux

Подобно лучшему инструменту мониторинга с точки зрения дизайна, iotop — это простая утилита, которая позволяет вам отслеживать активность дискового ввода-вывода и использование для каждого процесса.

Вы можете установить его на свой сервер Linux следующим образом (не забудьте запустить соответствующую команду для вашего дистрибутива Linux):

$ sudo apt install iotop             [On Debian, Ubuntu and Mint]
$ sudo yum install iotop             [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-processs/iotop  [On Gentoo Linux]
$ sudo apk add iotop                 [On Alpine Linux]
$ sudo pacman -S iotop               [On Arch Linux]
$ sudo zypper install iotop          [On OpenSUSE]

Чтобы отслеживать активность ввода-вывода для каждого процесса, вы можете запустить iotop без каких-либо аргументов следующим образом. По умолчанию задержка между итерациями составляет 1 секунду. Вы можете изменить это с помощью флага -d.

# iotop
OR
# iotop -d 2

iotop по умолчанию отображает все потоки процесса. Чтобы изменить это поведение, чтобы оно отображало только процессы, используйте параметр командной строки -P.

# iotop -P

Кроме того, используя параметр -a, вы можете настроить его на отображение накопленного ввода-вывода, а не пропускной способности. В этом режиме iotop показывает количество процессов ввода-вывода, выполненных с момента вызова iotop.

# iotop -P -a
Поделитесь с друзьями

Добавить комментарий

0 комментариев
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x