Как анализировать нагрузку 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.
Высокий %iowait часто связан с проблемами или высокой нагрузкой на диски. Для VPS также важно смотреть на %steal: его высокие значения могут указывать на конкуренцию за CPU на физическом узле.
Для просмотра каждого процессора отдельно:
sar -P ALL2. Оперативная память и SWAP
sar -r
Позволяет увидеть использование RAM.
Основные показатели:
- kbmemfree — свободная память;
- kbmemused — используемая память;
- %memused — процент использования RAM;
- kbcached — память, используемая кэшем;
- kbcommit — объём памяти, необходимый для выделения процессам.
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 или другим ресурсам.
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 -Wjournalctl, 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 скорее говорит о высокой нагрузке непосредственно со стороны приложений.