Как анализировать нагрузку Linux-сервера с помощью SAR

13 Sep 2026, 14:05:53
SAR (System Activity Reporter) — утилита из пакета sysstat, предназначенная для мониторинга и анализа производительности Linux-сервера. С её помощью можно посмотреть загрузку CPU, использование оперативной памяти и SWAP, дисковую активность, сетевой трафик, нагрузку на систему и другие показатели.
Главное преимущество SAR — возможность анализировать не только текущее состояние сервера, но и историю нагрузки за предыдущие часы или дни.

Установка

На Debian/Ubuntu:
apt install sysstatНа RHEL/CentOS/AlmaLinux/Rocky:
dnf install sysstatПосле установки необходимо включить сбор статистики:
systemctl enable --now sysstatИсторические данные обычно сохраняются в:
/var/log/sa/
Например:
/var/log/sa/sa13 — файл со статистикой за 13-е число месяца.

Основная команда SAR

Если выполнить:
sarбудет показана базовая статистика CPU за текущий день.


Для просмотра всех доступных показателей используется:
sar -AОднако на практике удобнее проверять отдельные подсистемы.

1. Загрузка CPU

sar -uДля наблюдения за нагрузкой в реальном времени:
sar -u 1 10

Команда собирает данные каждую секунду и делает 10 измерений.
Основные показатели:
  • %user — время CPU, потраченное пользовательскими процессами;
  • %system — время работы ядра;
  • %iowait — время ожидания операций ввода-вывода;
  • %steal — время, отобранное гипервизором у виртуальной машины;
  • %idle — время простоя CPU.
Например, высокий %user может указывать на интенсивную работу приложений, а высокий %system — на большую активность ядра, сети или дисковой подсистемы.
Высокий %iowait часто связан с проблемами или высокой нагрузкой на диски. Для VPS также важно смотреть на %steal: его высокие значения могут указывать на конкуренцию за CPU на физическом узле.
Для просмотра каждого процессора отдельно:
sar -P ALL

2. Оперативная память и SWAP

sar -r

Позволяет увидеть использование RAM.
Основные показатели:
  • kbmemfree — свободная память;
  • kbmemused — используемая память;
  • %memused — процент использования RAM;
  • kbcached — память, используемая кэшем;
  • kbcommit — объём памяти, необходимый для выделения процессам.
Для анализа SWAP:
sar -SЕсли сервер активно использует SWAP, это может указывать на нехватку оперативной памяти. Однако само наличие занятого SWAP ещё не означает проблему — важна интенсивность обмена данными.

3. Работа с дисками

Для статистики дисковых устройств:
sar -d

Можно оценить количество операций, объём переданных данных и среднее время выполнения операций.
Для более подробного анализа дисковой подсистемы обычно дополнительно используют:
iostat -xzSAR помогает увидеть динамику во времени, а iostat — подробнее оценить состояние конкретного диска.

4. Paging и работа виртуальной памяти

Команда:
sar -B

показывает статистику работы подсистемы виртуальной памяти и paging.
Она особенно полезна при диагностике:
  • нехватки RAM;
  • активного использования SWAP;
  • повышенной активности страниц памяти;
  • ситуаций, когда система начинает интенсивно перемещать данные между RAM и диском.

5. Сетевая нагрузка

Для просмотра сетевого трафика:
sar -n DEV

Можно увидеть количество принятых и отправленных пакетов и объём переданных данных по интерфейсам.
Например, это позволяет определить, какой интерфейс создаёт основную нагрузку.
Для ошибок сети:
sar -n EDEVЗдесь можно проверить ошибки и отброшенные пакеты.

6. Load Average

sar -qПоказывает информацию о загрузке очереди процессов и Load Average.


Load Average показывает количество задач, которые в определённый момент выполняются или ожидают CPU/ресурсы.
Например, на сервере с 2 CPU:
  • Load около 1 — нагрузка обычно невысокая, часть CPU свободна;
  • Load около 2 — CPU в среднем полностью загружены;
  • Load значительно выше 2 — часть задач ожидает доступа к CPU или другим ресурсам.
При этом высокий Load не всегда означает проблему именно с CPU. Он также может быть связан с дисковым I/O, поэтому показатель необходимо рассматривать вместе с sar -u и sar -d.

7. Исторический анализ

Одно из главных преимуществ SAR — возможность посмотреть, что происходило с сервером ранее.
Например:
sar -f /var/log/sysstat/sa12Покажет статистику за 12-е число.
Можно ограничить временной диапазон:
sar -f /var/log/sysstat/sa12 -s 10:00:00 -e 12:00:00

Это особенно полезно, если проблема произошла несколько часов назад и сейчас сервер работает нормально.
Например, после жалобы на медленный сайт можно проверить, была ли в этот момент высокая загрузка CPU, дисковая активность, нехватка памяти или сетевые проблемы.

8. Практический порядок диагностики

При высокой нагрузке сервера удобно начинать с общего состояния:
sar -u
sar -r
sar -q
Если подозрение на диски:
sar -d
sar -B
iostat -xz
Если проблема связана с сетью:
sar -n DEV
sar -n EDEV
sar -n TCP
Если есть подозрение на нехватку памяти:
sar -r
sar -S
sar -W
journalctl, ss, iostat, mpstat, pidstat и tcpdump можно использовать дополнительно, когда SAR показывает отклонение и необходимо найти конкретную причину.

Заключение

SAR — один из наиболее удобных инструментов для анализа производительности Linux-сервера. Он позволяет определить, какой ресурс был перегружен и когда именно это произошло.
Для базовой диагностики достаточно запомнить несколько команд:
sar -u       # CPU
sar -r       # RAM
sar -S       # SWAP
sar -d       # диски
sar -n DEV   # сеть
sar -q       # Load Average
sar -W       # paging/SWAP
sar -f       # исторические данные
sar -A       # вся доступная статистика
При диагностике важно не рассматривать один показатель изолированно. Например, высокий Load вместе с высоким %iowait может указывать на дисковую проблему, тогда как высокий %user при низком %iowait скорее говорит о высокой нагрузке непосредственно со стороны приложений.

Премиум выделенные серверы

Смотреть конфигурации