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

Опубликовано: 2022-06-16
Linux-терминал на экране ноутбука.
Фатмавати Ачмад Заэнури/Shutterstock.com

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

СВЯЗАННЫЕ С: Как просмотреть статистику производительности системы на вашем Chromebook

Команда сар

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

Понимание средней нагрузки в Linux и других Unix-подобных системах
СВЯЗАННЫЕ Понимание средней нагрузки в Linux и других Unix-подобных системах

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

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

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

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

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

 sudo apt установить sysstat 

Установка sysstat с помощью apt в Ubuntu

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

 sudo dnf установить sysstat 

Установка systat с dnf в Fedora

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

 sudo pacman -S sysstat 

Установка systat с pacman на Manjaro

Рекламное объявление

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

 sudo systemctl включить sysstat 

Включение демона sysstat

 sudo systemctl запустить sysstat 

запуск демона sysstat

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

 сар-V 

Проверка версии sar

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

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

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

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

 сар -у 2 3 

Отображение трех наборов статистики ЦП

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

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

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

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

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

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

 сар-П 1 1 3 

Отображение статистики ЦП для одного ядра

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

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

 сар-Б 5 2 

Отображение статистики подкачки памяти

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

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

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

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

 сар-б 4 3 

Отображение статистики передачи ввода/вывода

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

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

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

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

СВЯЗАННЫЕ С: Что такое скорость чтения/записи и почему они важны?

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

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

Рекламное объявление

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

 сар -у -с 06:30:00 -е 07:15:00 

Отображение исторических данных за сегодняшний день

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

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

 сар -у -1 -с 13:00:00 -е 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 , безусловно, дает вам достаточно информации для принятия обоснованных решений о производительности вашего компьютера.

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

СВЯЗАННЫЙ: Система работает медленно? Как узнать, привязан ли Linux к памяти, процессору или вводу-выводу