Найти в Дзене
Игорь Сотников

Linux. Мониторинг CPU. Часть 1.

Одной из базовых задач системного администрирования, является задача мониторинг метрик и производительности железа и операционных систем. В данной статье мы рассмотрим мониторинг CPU. Начнем с основных характеристик центрального процессора, основных метрик и инструментов для измерения и какие характеристики могут говорить о каких-либо проблемах, возникающих с центральным процессором. Основными программами для вывода параметров являются vmstat top, htop , atop,vtop … и.т.д Посмотрим частный пример утилиты vmstat. Мануал, как обычно расположен man vmstat, в котором даны подробные объяснения каждого параметра. Если vmstat запустить мы можем увидеть достаточно много метрик. В данной статье нас конечно же интересуют параметры центрального процессора. Еще не маловажный параметр данной утилиты watch и его применение watch vmstat. Можно написать скрипт с его помощью можно парсить необходимые параметры вот данной команды. У команды достаточно много ключей, вводя которые мы можем выводить необхо

Одной из базовых задач системного администрирования, является задача мониторинг метрик и производительности железа и операционных систем. В данной статье мы рассмотрим мониторинг CPU.

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

Основными программами для вывода параметров являются vmstat top, htop , atop,vtop … и.т.д

Посмотрим частный пример утилиты vmstat. Мануал, как обычно расположен man vmstat, в котором даны подробные объяснения каждого параметра. Если vmstat запустить мы можем увидеть достаточно много метрик.

-2

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

-3

Конечно в настоящее время практически у всех есть система мониторинга типа Zabbix, но это может пригодится для систем, которые не подключены к подобным системам мониторинга.

Посмотрим на картинку выше. Команда выводит процессы, параметры памяти, свопа, системы ввода\вывода, системные параметры и процессора.

По процессам система показывает исполняемые процессы (r) и процессы блокированные (b). А если более детально подходить то, речь идет о среднем количестве потоков ядра исполняемых и ждущих исполнения. Если это число больше количества ядер. То есть потоки, которые ожидают исполнения. Если это число меньше или равно количеству ядер, то все в порядке. Буква b (block) – это те процессы, которые находятся в состоянии непрерываемого сна. Их нельзя убить, это чаще всего те процессы, которые ждут ответа от дисков. В большинстве случаев сигнализирует о том, что диск у нас оч медленный.

Смотрим далее есть параметр system с двумя сабпараметрами in и cs. In – это прерывания, т.е количество сигналов прерываний в секунду. Они поступают либо от аппаратного или программного события. Говорят, о наступлении какого-либо события, например, пользователь нажал какую-либо клавишу. Cs- это переключение процессора с одной задачи на другую.

Метрики CPU –us -user, sy - system, id – idle, wa – wait, st – stolen time.

us –user – Это время которое используется на выполнение кода на пользовательском уровне. (Есть код который выполняется на пользовательском уровне не привилегированном и на аппаратном уровне, на уровне системы\ядра.) На пользовательском уровне чаще всего исполняется код которому не нужен доступ к железу. А вот если, что-то необходимо отправить по сети софт обращается к сетевой карте и вот тут задействуется аппаратный уровень. Если повести итог, то софт пользовательский уровень, а операционная система то аппаратный. Теперь перейдем к следующему параметру id - по сути это простой. Выраженный в процентах, как мы видим 100% т.е сервер просто простаивает. Если мы увидим, что запущен софт или какие-то процессы протекают в операционной системе, то мы будем видеть, что простой уменьшается. Параметр wa – wait это время ожидания от диска. Когда начинают появляться цифры, например, 50 и более это означает, что дисковой подсистемы не хватает и это означает что большинство времени процессор ждет ответа от жестких дисков. Это повод сменить жесткие диски или как-то реорганизовать дисковую подсистему. И последний параметр st – украденное время. Если мы используем гипервизоры, т.е. виртуальные машины, то они оч хорошо могут перераспределять место, оперативную память, но разделять процессор аппаратный сложнее и вот гипервизор распределяет ресурсы процессора и если виртуалка у нас находится с другими виртуалками на одном железе и соседние ВМ начинают использовать жестко процессор и это может отразится на этой машине. Вот по параметру st мы можем увидеть, как долго наша виртуалка ожидает ответа от гипервизора. Т.е как быстро ей гипервизор может отвечать.

Теперь мы перейдем в некотором роде оперативный диспетчер задач. Это top или можно использовать более продвинутую версию htop.

-4

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

Если мы нажмем 1, то мы увидим количество ядер. У меня их 2 шт.

-5

Здесь мы можем увидеть уже знакомые нам параметры, но и новые, например, ni – nice level т.е какая часть процессора занята задачами с измененными приоритетами. И еще 2 параметра hi – hardware interrupts и si – software interrupts. Там у нас был отдельный столбец с прерываниями. Здесь они разделены на софтовые и аппаратные.

Зажимая shift и клавишу больше или меньше, мы можем изменять сортировку.

Диспетчер htop поставить достаточно просто apt install htop –y или dnf install htop –y, в зависимости от вашей Операционной системы.

А вот так он выглядит.

-6

Вот таким образом мы можем использовать мониторинг.

Если у кого есть желание сказать спасибо за канал или статьи :

QIWI: KNEYE561

Юmoney ( ЯД ) 41001606289345

#Ubuntu #CentOS #open source #системное администрирование