Load average в Linux, анализ нагрузки на CPU


Load Average в Linux это параметр, позволяющий динамически оценивать нагрузку создаваемую процессами на сервере.

В любой нагруженной системе существует необходимость постоянного контроля уровня существующей нагрузки. Load Average (средняя нагрузка) или LA является  основным показателем, на который ориентируются системы мониторинга и системные администраторы.



Самым простым способом посмотреть текущие показатели LA в Linux является выполнение команды uptime


По умолчанию команда выводит текущее время, время с момента старта сервера, количество пользователей в системе и характеристики LA

uptime

20:36:11 up  1:50,  1 user,  load average: 1,09, 0,66, 0,66



Также uptime можно использовать с ключом -p — в выводе в этом случае будет только непосредственно время, которое сервер пребывает во включенном состоянии

uptime -p

up 1 hour, 52 minutes

Однако, LA в этом случае отображаться не будет


Показатели Load Average можно посмотреть открыв какой-либо анализатор состояния системы, например top



Load Average в Linux: что такое LA и какие его значения следует считать большими


load average в linux

LA — показатель нагрузки на систему. Подсчет ведется за последние минуту, 5 минут и 15 минут.



LA может считаться большим или малым в зависимости от количества ядер процессора.



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

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



Если применяется несколько процессоров необходимо пересчитывать их количество на количество используемых ядер и сопоставлять полученное число с показателями LA.

Допустимая нагрузка просто умножается на количество используемых ядер процессора.

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



Как узнать сколько ядер используется Linux сервер


Информация о процессоре в Linux хранится в файле /proc/cpuinfo. Получить сведения о количестве ядер процессора можно сделав выборку из содержимого файла по ключевому выражению 'cpu cores'

cat /proc/cpuinfo | grep 'cpu cores'

cpu cores    : 2
cpu cores    : 2
cpu cores    : 2
cpu cores    : 2



Повышенная нагрузка практически всегда является ситуацией, требующей вмешательства и означающей, что система работает некорректно.



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



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



Читайте про управление процессами в Linux, если LA выше обычного —  рассмотренные в материале команды позволят выявить процессы, нагружающие систему.

Сказать спасибо