Ключевым показателем производительности для мониторинга на сервере 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