Средний LA (Load Average) за сутки используя статистику atop

atop — продвинутый интерактивный полноэкранный монитор производительности, расширенный аналог top. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, сети и многое другое. На мой взгляд, является самым удобным инструментом для мониторинга состояния системы, поскольку собирает всю необходимую информацию вместе. Важной особенностью является возможность сохранения данных в файл собственного двоичного формата, что мы и будем использовать для решения этой задачи.
Я не буду останавливаться на возможностях atop в рамках этой статьи.

После инсталляции atop складывает свою статистику в файлы (по дням) в папку /var/log/atop/.

С помощью опции -r <путь_к_файлу> указывается какой именно дамп будет считан.
Для ещё более точного определения диапазона за этот день можно использовать опции -b время старта (в формате hh:mm) и -e время окончания (в формате hh:mm)
Если нас интересует статистика только по некоторым параметрам, мы можем указывать это с помощью опции -P. Значения могут быть следующие:

  • PRC — Process level totals
  • CPU — CPU utilization
  • CPL — CPU load information
  • MEM — Memory occupation
  • SWP — Swap occupation and overcommit info
  • PAG — Paging frequency
  • LVM/MDD/DSK — Logical volume/multiple device/disk utilization
  • NET — Network utilization (TCP/IP)

Тогда средний LA (Load Average, параметр CPL) за сутки (в примере это 20170302) можно вывести используя следующее:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ total += $1 } END { print "LA AVG: " total/NR }'

Что выведет:

LA AVG: 2.155

Подобным образом можем посчитать максимальное значение:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ if(max<$1) { max=$1 } } END { print "LA MAX: " max }'

Что выведет:

LA MAX: 3.46

Точно так же вы можете отобразить и другие параметры.