Страницы

Сохранить статью у себя в соцсети:

среда, 22 апреля 2015 г.

Linux Performance Observability Tools. Sysstat.

Продолжаем обзор инструментов для наблюдения за производительностью. Сегодня я бы хотел рассказать о таком наборе утилит как sysstat. Это очень интересный пакет. Прежде всего он интересен тем что позволяет вести историю производительности. Это актуально если у вас небольшое количество хостов и вы не хотите развертывать отдельную систему мониторинга. Кроме того sysstat предоставляет несколько утилит для online наблюдения за системой. 
Как правило sysstat отсутствует среди установленных пакетов, поэтому чтоб начать его использовать, следует его установить. Используйте пакетный менеджер вашего дистрибутива для установки пакета. Независимо от дистрибутива пакет должен называться sysstat.

После установки пакета вы можете сразу же начать использовать следующие утилиты:
pidstat - отображение текущей статистики по запущенным процессам. Очень удобная утилита в случае когда нужно наблюдать за отдельным процессом. Эта утилита подходит для использования после утилиты top, для более детального наблюдения. Утилита позволяет отслеживать данные по использованию процессора, памяти, ввода-вывода и другие специфичные вещи связанные с наблюдаемым процессом. 
mpstat - утилита предназначенная для отображения статистики имеющей отношение к процессорам. Это утилизация и прерывания. В своей практике я практически не использую эту утилиту, как правило мне достаточно данных утилиты top.
iostat - эта утилита в моей практике, наоборот самая часто используемая. Iostat показывает детальную статистику использования дисковой подсистемы. Эта утилита используется при любых подозрениях на медленную работу дисковой подсистемы. Iostat предоставляет данные о текущей пропускной способности (Килобайты или IOPS), количество запросов в очереди и средний размер запроса ввод-вывода, latency операций чтения и записи. И самое любимая метрика это утилизация диска в процентах.
И остаются утилиты cifsiostat и nfsiostat-sysstat/nfsiostat. Эти утилиты аналогичны iostat и позволяют просматривать статистику по утилизации CIFS и NFS файловых систем. Они предоставляют данные по пропускной способности, количеству операций и похожие вещи.

Теперь рассмотрим возможности накопления и просмотра исторических данных.
Возможность сбора метрик нужно включить отдельно. Как правило задача сводится к включению крон-задачи. Однако в разных дистрибутивах используются разные подходы. Например в Debian/Ubuntu нужно отредактировать файл /etc/default/sysstat. В OpenSUSE нужно сделать симлинк в /etc/cron.d/ на /etc/sysstat/sysstat.cron. Для уточнения смотрите инструкцию по установке sysstat для вашего дистрибутива.
Если все сделано правильно, через некоторое время у вас уже появятся первые данные. Просмотривать их можно с помощью команды sar. У этой утилиты довольно много ключей, однако я наиболее часто применяюю следующие ключи -u (cpu), -d (disk), -B (paging), -b (I/O), -r (memory) -n DEV (network), -n EDEV (network errors). По умолчанию вызов sar покажет вам информацию за сегодняшний день. Если выхотите просмотреть информацию за прошедшие дни это можно выполнить с помощью ключа -f и соответствующего файла истории, например:
$ sar -u -f /var/log/sa/sa20

Будьте осторожны, размещение файлов истории может отличаться для вашего дистрибутива. 
Теперь рассмотрим утилиты для работы с историческими данными:
sar - как вы уже знаете, отображает ранее собранные данные в человекочитаемом формате. Также как и iostat наиболее часто используемая утилита.
И остаются утилиты которые вам практически непридется запускать руками:
sadc - занимается сбором и хранением данных о системной активности.
sadf - позволяет выводить собранные данные в различных форматах (csv, xml, json).
sa1 - shell-script обертка над sadc которая используется в кроне.
sa2 - shell-script обертка над sar для создания ежедневных отчетов на основе собранных данных.

На этом вводное слово для sysstat окончено. В дальнейших статьях я возьму на рассмотрение наиболее часто используемые утилиты iostat и sar.



1 комментарий:

  1. Доброго времени суток.

    Спасибо, очень интересно.

    Для более удобного отображения времени в формате 24HH выполним:
    # export LC_TIME="POSIX"

    Да, и еще, для sar есть парсер ksar (http://sourceforge.net/projects/ksar), который позволяет строить графики, сохранять отчеты в PDF и многое другое.

    ОтветитьУдалить

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика