Освоение производительности: Практическое руководство по использованию набора инструментов Sysstat

Раскройте весь потенциал мониторинга производительности Linux с помощью этого практического руководства по набору инструментов Sysstat. Узнайте, как установить и настроить Sysstat для ведения исторического журнала и освоить использование мощной утилиты `sar`. Эта статья предоставляет практические примеры команд для анализа загрузки ЦП, нагрузки на память, насыщения дискового ввода-вывода и сетевой активности, что позволяет администраторам устанавливать базовые показатели производительности и быстро диагностировать и устранять узкие места в системе в производственных средах.

28 просмотров

Освоение производительности: Практическое руководство по использованию набора инструментов Sysstat

Мониторинг производительности — это основа надежного администрирования систем Linux. Без надежных инструментов для отслеживания использования ресурсов выявление узких мест становится гаданием, что приводит к неэффективному устранению неполадок и реактивному масштабированию. Пакет утилит sysstat — это незаменимый, нативный набор инструментов Linux для сбора, анализа и составления отчетов о системной активности во всех критически важных областях ресурсов.

Это руководство предоставляет всесторонний обзор набора инструментов sysstat, уделяя основное внимание System Activity Reporter (sar). Мы рассмотрим установку, настройку для ведения исторического журнала и практические примеры команд для установления базовых показателей производительности и выявления конфликтов ресурсов в режиме реального времени и при последующем анализе использования ЦП, памяти, дискового ввода-вывода и сети.


1. Установка и первоначальная настройка Sysstat

Пакет sysstat обычно доступен в стандартных репозиториях всех основных дистрибутивов Linux.

1.1 Команды установки

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

Debian/Ubuntu:

sudo apt update
sudo apt install sysstat

RHEL/CentOS/Fedora:

sudo yum install sysstat
# или используйте dnf для новых систем
sudo dnf install sysstat

1.2 Включение сбора исторических данных

Чтобы sar был действительно полезен, он должен собирать данные исторически. По умолчанию при установке часто настраивается задание cron или таймер systemd, но проверка имеет решающее значение.

В современных системах убедитесь, что служба sysstat активна:

sudo systemctl enable --now sysstat

Файл конфигурации

Частота сбора данных контролируется файлами конфигурации, обычно расположенными по адресу /etc/default/sysstat (Debian/Ubuntu) или /etc/sysconfig/sysstat (RHEL/CentOS). Ищите настройку ENABLED или HISTORY. Установка ENABLED="true" обеспечивает ежедневный сбор данных.

Совет: По умолчанию файлы данных sysstat хранятся в /var/log/sa/ с именами файлов, такими как saXX (где XX — день месяца).

2. Основная утилита: System Activity Reporter (sar)

sar — это основной интерфейс для просмотра статистики. Он может отображать данные в реальном времени или анализировать ранее собранные исторические данные.

2.1 Базовый синтаксис для мониторинга в реальном времени

Базовый синтаксис предназначен для отчета о конкретных метриках с указанным интервалом для заданного количества.

sar [options] [interval] [count]

Пример: Отчет об общей статистике ЦП каждые 3 секунды, 10 раз:

sar -u 3 10
Опция Описание
-u Загрузка ЦП (по умолчанию)
-r Статистика памяти и страничной подкачки
-d Активность блочных устройств (дисковый ввод-вывод)
-n Сетевая статистика (например, -n DEV для статистики интерфейсов)
-q Очередь выполнения и средняя загрузка
-W Активность подкачки (страничная подкачка)
-A Все метрики (полезно для комплексных снимков)

3. Ключевые метрики производительности и практические примеры sar

Понимание вывода sar требует знания того, какие метрики указывают на состояние производительности или нагрузку.

3.1 Загрузка ЦП (sar -u)

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

sar -u 5 3
Метрика Описание Индикатор узкого места
%user Время ЦП, затраченное на выполнение пользовательских процессов. Высокое значение указывает на насыщение приложения/сервиса.
%system Время ЦП, затраченное на выполнение системных задач ядра. Высокое значение предполагает интенсивные системные вызовы или проблемы с драйверами.
%iowait Время ЦП, простаивающее в ожидании операций ввода-вывода (диск/сеть). Высокое значение указывает на узкое место ввода-вывода, а не на нехватку ЦП.
%idle Время ЦП, затраченное на ожидание (свободно). Низкое значение (например, < 5%) предполагает насыщение ЦП.

3.2 Память и страничная подкачка (sar -r и sar -W)

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

Использование памяти (sar -r):

sar -r 1 5

Сосредоточьтесь на kbavail (доступная память). Если kbmemfree низкое, но kbcached и kbbuffers высокие, память эффективно используется механизмом кэширования ядра.

Активность подкачки (sar -W):

sar -W 1 5

Обратите внимание на pswpin/s (страницы, загруженные в подкачку) и pswpout/s (страницы, выгруженные из подкачки). Любые значительные ненулевые значения здесь указывают на то, что система активно подкачивает страницы, сигнализируя о нехватке памяти (сильное узкое место).

3.3 Активность дискового ввода-вывода (sar -d)

Мониторинг активности диска имеет решающее значение для серверов баз данных или систем с интенсивным использованием хранилищ.

sar -d 3 5

Этот вывод требует идентификации конкретных устройств (например, sda, vda). Основные метрики включают:

  • tps: Транзакций в секунду (высокое значение указывает на большое количество запросов ввода-вывода).
  • rd_sec/s и wr_sec/s: Объем данных, прочитанных/записанных в секунду.
  • %util: Процент времени, в течение которого устройство было занято обслуживанием запросов. Если %util приближается к 100%, система хранения насыщена.

3.4 Сетевая статистика (sar -n)

sar может отчитываться об активности на различных сетевых уровнях. Наиболее распространенная проверка — активность интерфейса (DEV).

sar -n DEV 5 1

Эта команда показывает метрики, такие как rxpk/s (полученные пакеты в секунду) и txkB/s (переданные килобайты в секунду) для каждого сетевого интерфейса. Используйте это для идентификации интерфейсов, испытывающих высокую нагрузку или потенциальные ошибки.

4. Исторический анализ и создание базовых показателей

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

4.1 Анализ предыдущих дней

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

Пример: Просмотр статистики ЦП за 10-й день текущего месяца:

sar -u -f /var/log/sa/sa10

Чтобы просмотреть статистику за определенный временной интервал в этот день, добавьте флаги -s (время начала) и -e (время окончания) (используя 24-часовой формат).

# Просмотр сетевой статистики с 14:00 до 16:30 за 10-е число
sar -n DEV -f /var/log/sa/sa10 -s 14:00:00 -e 16:30:00

4.2 Установление базовых показателей

  1. Сбор данных: Запустите sysstat в течение 1-2 недель в периоды обычной высокой и низкой нагрузки.
  2. Определение норм: Проанализируйте исторические данные (sar -f), чтобы определить среднюю загрузку ЦП (%user, %system), пиковую задержку ввода-вывода (%util) и среднее использование памяти.
  3. Определение пороговых значений: Любое устойчивое отклонение (например, удвоение %iowait или падение %idle ниже 5% более чем на 10 минут) относительно вашего базового уровня указывает на проблему производительности, требующую расследования.

5. Вспомогательные инструменты Sysstat

Хотя sar является основным инструментом, пакет sysstat включает специализированные утилиты, которые предоставляют сфокусированные, детализированные отчеты.

5.1 iostat (Статистика ввода-вывода)

iostat предоставляет подробные метрики, ориентированные специально на использование устройств, что особенно полезно при диагностике узких мест в хранилище.

# Отчет по статистике дисков каждые 2 секунды, 4 раза, включая расширенную статистику (x)
iostat -xd 2 4

Ключевые метрики iostat:

  • %util: Процент времени ЦП, в течение которого устройству были выданы запросы на ввод-вывод (ключевой показатель насыщения).
  • await: Среднее время ожидания (в миллисекундах) для запросов на ввод-вывод, выданных устройству. Высокое значение await указывает на медленную реакцию хранилища.

5.2 mpstat (Статистика многопроцессорности)

Если вы подозреваете проблемы с планированием ЦП или неравномерное распределение рабочей нагрузки по ядрам, mpstat предоставляет статистику использования для каждого процессора, что sar -u агрегирует.

# Показ использования всех ЦП (A) каждые 2 секунды
mpstat -P ALL 2 1

Это бесценно для выявления однопоточных приложений, которые насыщают одно ядро, в то время как другие остаются неактивными, или для диагностики эффективности гиперпоточности.

Заключение

Набор инструментов sysstat является фундаментальным элементом оптимизации производительности и мониторинга систем Linux. Освоив утилиту sar, системные администраторы получают возможность выйти за рамки простого мгновенного мониторинга и проводить глубокий исторический анализ потребления ресурсов. Регулярное использование sar для мониторинга использования ЦП, памяти, ввода-вывода и сети, в сочетании с установлением надежных базовых показателей производительности, превращает реактивное устранение неполадок в проактивное управление системой, обеспечивая оптимальное использование ресурсов и стабильность системы.