Потребление CPU Linux


Потребление CPU в Linux является одним из ключевых параметров работы системы, которые нужно контролировать. Потребление CPU отражается большим количеством стандартных Linux утилит, также контролируется системами мониторинга такими как Nagios и Zabbix.

Рассмотрим основные утилиты, выводящие информацию о CPU. С их помощью можно проверить текущее состояние системы вручную.



Потребление CPU Linux сервером и утилиты, использующиеся для анализа


CPU (central processor unit) — серверный процессор, для CPU основными параметрами является количество ядер процессора и частота.



Информацию на момент выполнения запроса проще всего посмотреть vmstat


vmstat

procs ————memory———- —swap— ——io—- -system— ——cpu——
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 1010668 351272 37448 646940 18 32 99 53 206 97 11 2 82 5 0

Можно обращаться к утилите по CRON и считывать нужные данные, затем использовать в скриптах

Также можно смотреть результат выполнения в динамике с обновлением каждую секунду



watch vmstat



В выводе vmstat есть несколько блоков: proces, memory, swap, io, system parametrs, cpu

proces:
r — running (среднее количество потоков ядра исполняемых и ждущих исполнения, не должно быть больше количества ядер)
b — blocked (процессоры в состоянии непрерываемого сна, нельзя убить, ждут ответа от дисков или реже — системы распределения памяти; обычно говорит о медленных дисках)

system:

in (interapts) прерывания, количество прерываний в секунду
cs (context swithes) переключение процессора с одной задачи на другую

cpu:
us — user space — время, кот-е используется на выполнение кода на уровне пользователя (в непривилегированном режиме)
sy — system — функции ОС, привязываются к софту. Также они всегда привязаны к аппаратной части (всегда доступ к ядру, для user space такого нет)

id — idle — простой процессора
wa — wait — время ожидания ответа от диска (от 50 означает, что диск очень медленный)
st — stolen time — показывает как долго виртуалка ожидает ответа от гипервизора

 


Использование top для контроля CPU


top более удобен при ручной работе и неприменим в скриптах

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



Увидеть нагрузку на CPU можно нажав английскую букву C на клавиатуре в открытом окне с запущенным top.


Вывод утилиты top с информацией о загрузке процессора:

Потребление CPU linux


Информация будет выведена в расчете на одно ядро в системе. Ядер может быть больше. Чтобы увидеть как нагрузка распределяется по ним можно нажав 1 на клавиатуре



Выводятся практически те же метрики, что уже рассмотрены для vmstat. us, sy, ni ( — lice level — какая часть процессов занимается выполнением процессов с измененными приоритетами), id, wa, hi (hardware iterations), si (software iterations)



Читайте также про контроль производительности и загруженности дисков, а также про проверку использования оперативной памяти.

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