Поиск по сайту:

Как использовать команду sar в Linux


Команда sar позволяет просматривать статистику производительности для различных элементов вашего компьютера с Linux, как для данных в реальном времени, так и для исторических данных. Мы покажем вам, как использовать этот замечательный ресурс.

Команда сар

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

Он работает в фоновом режиме как демон, собирая набор данных каждые десять минут. Данные за текущий день записываются в текстовый файл. По прошествии полуночи он преобразуется в двоичный файл. Файлы перезаписываются каждый месяц, поэтому они не занимают постоянно место на жестком диске.

Команда sar позволяет вам опросить систему и просмотреть статистику. Но сначала вам нужно установить пакет sysstat.

Установка пакета sysstat

Установить sysstat очень просто. Мы используем менеджер пакетов вашей системы Linux для его установки, а затем используем systemd для включения и запуска фонового демона.

Чтобы установить sysstat в Ubuntu, мы используем apt:

sudo apt install sysstat

Чтобы установить sysstat в Fedora, введите:

sudo dnf install sysstat

А для установки sysstat на Manjaro используем pacman:

sudo pacman -S sysstat

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

sudo systemctl enable sysstat
sudo systemctl start sysstat

Чтобы узнать, какую версию sar вы используете, и убедиться, что она отвечает, вы можете использовать параметр -V (версия):

sar -V

Статистика в реальном времени с sar

Вы можете использовать sar, чтобы увидеть, что происходит внутри вашего компьютера прямо сейчас. А поскольку снимок — это просто состояние игры в определенный момент времени, а иногда более полезен тренд, вы можете попросить sar отобразить несколько снимков с определенное количество секунд между ними.

Статистика ЦП

Чтобы просмотреть три набора статистики ЦП с интервалом в две секунды между ними, мы использовали бы эту команду, в которой используется параметр -u (ЦП). Обратите внимание, что интервал стоит первым. Таким образом, эта команда гласит: «показать статистику ЦП с шагом в две секунды для трех наборов данных».

sar -u 2 3

Растягивание окна терминала приводит к тому, что таблица выстраивается аккуратно, поэтому ее легче читать.

Заголовок для первого столбца — это время выполнения команды. Значения в столбце — это время сбора каждого набора данных. Остальные столбцы:

  • ЦП: количество ядер ЦП или ALL для среднего числа всех ядер.
  • %User: процент времени, затраченного на запуск приложений на уровне пользователя, «в пространстве пользователя».
  • %Nice: процент времени, потраченного на запуск приложений на уровне пользователя с приоритетом nice.
  • %system: процент времени, затраченного на выполнение процессов на системном уровне в ядре.
  • %iowait: процент времени, в течение которого ЦП бездействовал с ожидающим запросом дискового ввода-вывода.
  • %steal: в виртуальной машине это процент времени, в течение которого виртуальный ЦП бездействовал из-за того, что ЦП аппаратного хоста обслуживал другую виртуальную машину.
  • %idle: процент времени, в течение которого ЦП бездействовал без каких-либо ожидающих запросов дискового ввода-вывода.

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

Чтобы просмотреть статистику для конкретного ядра, используйте параметр -P (на процессор). Затем следует номер ядра ЦП или список или диапазон номеров ядер, например 0,1,4 или 4-8.

Эта команда просматривает три набора данных с интервалом в одну секунду для ядра 1. Помните, ядра нумеруются с нуля.

sar -P 1 1 3

Статистика подкачки памяти

Параметр -B (пейджинг) заставляет sar отображать статистику, связанную с пейджингом памяти на жестком диске. Мы собираемся запросить два набора информации с интервалом в пять секунд.

sar -B 5 2

Столбцы содержат следующую информацию.

  • pgpgin/s: общее количество килобайт, которое система выгружает (извлекает) с жесткого диска в секунду.
  • pgpgout/s: общее количество килобайт, которое система выгружает на жесткий диск в секунду.
  • fault/s: количество сбоев страниц, как незначительных, так и серьезных, совершаемых системой в секунду.
  • majflt/s: количество серьезных ошибок системы за секунду, которые потребовали загрузки страницы памяти с диска.
  • pgfree/s: количество страниц, помещаемых системой в список бесплатных за секунду.
  • pgcank/s: количество страниц, сканируемых демоном системы управления памятью kswapd в секунду.
  • pgscand/s: количество страниц, отсканированных напрямую в секунду.
  • pgsteal/s: количество страниц, которые система высвобождает из кэша в секунду.
  • %vmeff: рассчитывается как pgsteal/pgscan и показывает эффективность восстановления страниц.

Скорость передачи ввода/вывода

Чтобы просмотреть статистику ввода-вывода и скорости передачи, используйте параметр -b (обратите внимание, буква «b» в нижнем регистре). Мы запрашиваем три набора данных с интервалом в четыре секунды.

sar -b 4 3

Это то, что держат столбцы.

  • tps: общее количество запросов на передачу в секунду, сделанных на физические устройства. Обратите внимание, что это количество запросов. Возможно, не все из них были успешными.
  • rtps: общее количество запросов на чтение в секунду, отправленных физическим устройствам.
  • wtps: общее количество запросов на запись в секунду, отправленных на физические устройства.
  • dtps: общее количество запросов на удаление в секунду, отправленных физическим устройствам.
  • хлеб/с: общий объем данных, считанных с физических устройств. Цифра представлена блоками по 512 байт в секунду.
  • bwrtn/s: общий объем данных, записываемых на физические устройства в блоках в секунду.
  • bdscd/s: общее количество отбрасываемых данных в блоках в секунду.

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

Полный список можно найти на справочной странице sar.

Историческая статистика С саром

Чтобы просмотреть любые исторические данные, достаточно просто добавить параметры времени -s (начало) и -e (конец) к любому из обычных sar. команды. Время выражено в 24-часовом формате.

Чтобы узнать, какой была загрузка ЦП между 06:30 и 07:15 сегодня, мы воспользуемся этой командой.

sar -u -s 06:30:00 -e 07:15:00

Чтобы увидеть, какой была ситуация в предыдущий день, используйте число в качестве флажка опции. Цифра указывает, за какой день нужно отчитываться. Параметр -1 будет означать вчерашний день, вариант -2 — два дня назад и так далее.

Давайте создадим отчет между 13:00 и 13:00, используя вчерашние данные.

sar -u -1 -s 13:00:00 -e 13:30:00

Другой способ указать день, за который вы хотите создать отчет, — использовать имя файла данных за этот день в командной строке. Мы делаем это с помощью опции -f (имя файла).

Ежедневные файлы называются «saXX», где XX заменяется на день месяца. Они создаются в папке журнала вашего компьютера с Linux. Папка журнала sar, вероятно, называется «/var/log/sa/» или «/var/log/sysstat/».

В Ubuntu это «/var/log/sysstat/», поэтому формат нашей команды для просмотра загрузки ЦП между 14:00 и 14:30 на 21-й день этого месяца будет выглядеть следующим образом:

sar -u -s 14:00:00 -e 14:30:00 -f /var/log/sysstat/sa21

Информация - сила

А sar, безусловно, дает вам достаточно информации для принятия обоснованных решений о производительности вашего компьютера.

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