sysstat
- комплекс утилит для сбора и хранения метрик производительности системы, включает в себя такие утилиты как:
- sar: Сбор данных и отчеты по активности системы;
- iostat: отчеты по утилизации CPU и статистики дисковых I/O операций;
- pidstat: Статистика по процессам;
- sadf: отображение информации собранной sar в различных форматах.
Установка:
Для начала необходимо установить сам пакет sysstat -
apt install sysstat
Затем включить сбор информации, для этого в файле /etc/default/sysstat меняем параметр
ENABLED=”false”
на ENABLED=”true”
При желании можно отредактировать частоту снятия метрик (по умолчанию раз в 10 минут), в файле /etc/cron.d/sysstat
Я выставил себе раз в минуту, изменив строку :
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
на
* * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
или на раз в две минуты
*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
Осталось только перезапустить сервис, чтоб он подхватил новые параметры:
sudo systemctl restart sysstat
Примеры отображения по параметрам:
sar без параметров выведет инофомацию по утилизации CPU за сегодня
Код: Выделить всё
chocobo@desktop ~ $ sar
Linux 4.8.0-58-generic (desktop) 13.07.2017 _x86_64_ (4 CPU)
18:01:55 LINUX RESTART (4 CPU)
18:02:01 CPU %user %nice %system %iowait %steal %idle
18:03:01 all 6,53 0,02 2,22 0,10 0,00 91,14
18:04:01 all 3,18 0,02 1,31 0,09 0,00 95,40
18:05:01 all 4,15 0,02 1,36 0,14 0,00 94,33
18:06:01 all 3,67 0,02 1,43 0,07 0,00 94,82
18:07:01 all 3,60 0,02 1,34 0,08 0,00 94,96
18:08:01 all 5,15 0,03 2,06 0,08 0,00 92,69
18:09:01 all 3,92 0,02 1,51 0,08 0,00 94,48
18:10:01 all 3,65 0,02 1,34 0,08 0,00 94,92
18:11:01 all 4,16 0,03 1,76 0,08 0,00 93,97
18:12:01 all 5,11 0,03 1,91 0,08 0,00 92,88
18:13:01 all 4,79 0,02 2,08 0,08 0,00 93,03
18:14:01 all 4,46 0,03 2,10 0,08 0,00 93,34
18:15:01 all 3,20 0,01 1,32 0,13 0,00 95,34
18:16:01 all 6,56 0,02 2,73 0,07 0,00 90,61
Среднее: all 4,44 0,02 1,75 0,09 0,00 93,70
sar -P [0-9]
(нумерация ядер начинается с нуля)
Код: Выделить всё
chocobo@desktop ~ $ sar -P 0
Linux 4.8.0-58-generic (desktop) 13.07.2017 _x86_64_ (4 CPU)
18:01:55 LINUX RESTART (4 CPU)
18:02:01 CPU %user %nice %system %iowait %steal %idle
18:03:01 0 6,63 0,00 1,59 0,10 0,00 91,68
18:04:01 0 3,33 0,02 1,24 0,07 0,00 95,35
18:05:01 0 5,20 0,02 1,07 0,07 0,00 93,65
18:06:01 0 2,99 0,00 1,24 0,03 0,00 95,73
18:07:01 0 5,04 0,03 1,10 0,07 0,00 93,76
18:08:01 0 6,57 0,03 1,67 0,13 0,00 91,59
18:09:01 0 3,10 0,00 1,57 0,05 0,00 95,29
18:10:01 0 4,23 0,03 1,18 0,08 0,00 94,47
18:11:01 0 4,81 0,03 1,54 0,05 0,00 93,56
18:12:01 0 5,87 0,03 1,47 0,05 0,00 92,58
18:13:01 0 6,26 0,00 1,58 0,08 0,00 92,07
18:14:01 0 4,44 0,03 2,20 0,05 0,00 93,28
18:15:01 0 3,70 0,02 1,28 0,05 0,00 94,95
Среднее: 0 5,00 0,02 1,56 0,06 0,00 93,36
sar -r
- детализированное использование оперативной памяти
Код: Выделить всё
chocobo@desktop ~ $ sar -r
Linux 4.8.0-58-generic (desktop) 13.07.2017 _x86_64_ (4 CPU)
18:01:55 LINUX RESTART (4 CPU)
18:02:01 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
18:03:01 3895184 4220280 52,00 2112 2140620 3716976 45,80 1993280 1371284 2052
18:04:01 3880728 4234736 52,18 2112 2142504 3711144 45,73 2007036 1371344 836
18:05:01 3844024 4271440 52,63 2112 2145000 3781248 46,59 2042960 1372720 484
18:06:01 3843376 4272088 52,64 2112 2145612 3770008 46,45 2043560 1372864 820
18:07:01 3839476 4275988 52,69 2112 2146540 3781216 46,59 2047496 1373036 304
18:08:01 3846768 4268696 52,60 2112 2147576 3781404 46,60 2039924 1372896 580
18:09:01 3840620 4274844 52,68 2112 2148716 3772716 46,49 2045748 1373216 476
18:10:01 3845720 4269744 52,61 2112 2150224 3773544 46,50 2039784 1373920 880
18:11:01 3845996 4269468 52,61 2112 2152004 3778236 46,56 2039480 1374672 412
18:12:01 3866308 4249156 52,36 2112 2153284 3791620 46,72 2042416 1375072 840
18:13:01 3833504 4281960 52,76 2112 2154804 3782836 46,61 2052144 1375476 1860
18:14:01 3833420 4282044 52,76 2112 2155884 3780520 46,58 2051084 1375736 848
18:15:01 3861496 4253968 52,42 2112 2156888 3778652 46,56 2055148 1375852 1060
Среднее: 3854301 4261163 52,51 2112 2152752 3773483 46,50 2044117 1374733 811
sar -d
для статистики по I/O операциям, sar -S
для детализации по свопу, и т.д. Там довольно много всего и сетевая активность и LA, context switches... Подробная информация есть в man-странице, но надо признать, что разобраться неподготовленному пользователю вероятно будет непросто 
Обращение к прошлым или текущим срезам
Для отображения параметров за прошедшие дни к интересующим параметрам необходимо добавить ключ
-f
с указанием пути к файлу статистики. Хранятся они в /var/log/sysstat/sa[1-31]
по каледарному числу дня записи, и соответственно по умолчанию хранятся один месяц. В итоге команда на просмотр как был задействован swap например 10-го числа будет выглядеть так
sar -S -f /var/log/sysstat/sa10
Для снятия же текущей информации с произвольным интервалом - достаточно добавить в конец два числа, где первое это интервал в секундах между срезами, второе - количество итераций. Например
sar -P ALL 3 10
выведет статистику по всем ядрам процессора в реальном времени с обновлением каждые три секунды, десять раз подряд.В общем, для контроля множества аспектов работы системы, или наблюдения за каким-либо программно-аппаратным параметром в конкретной ситуации - крайне полезная вещь
