6 ключевых показателей производительности для мониторинга в серверах Linux

В этой серии мы расскажем о 6 ключевых показателях производительности, которые необходимо отслеживать на сервере Linux. К концу этой серии вы поймете, на какие факторы в Linux нужно обращать внимание и которые влияют на общую производительность системы, а также их относительную важность.

Многие факторы в Linux сервере влияют на его общую производительность или производительность приложений, размещенных на нем.

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

Давайте рассмотрим первые два ключевых показателя производительности в этой первой части серии.

1. Использование процессора в Linux

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

Существует несколько командной строки и графического интерфейса пользователя для мониторинга CPU в системе Linux, таких как top, glances (мой любимый), htop и другие.

Glances – Linux Monitoring Tool

Glances – это утилита с открытым исходным кодом для мониторинга в реальном времени, которая отслеживает несколько аспектов вашей Linux системы, таких как использование процессора, памяти, дисков и сети.

Чтобы установить glances на ваш дистрибутив Linux, выполните:

sudo apt install glances             [On Debian, Ubuntu and Mint]
sudo yum install glances             [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-process/glances   [On Gentoo Linux]
sudo apk add glances                 [On Alpine Linux]
sudo pacman -S glances               [On Arch Linux]
sudo zypper install glances          [On OpenSUSE]
glances

Здесь общее использование CPU составляет 29.5 процентов, и большее количество времени CPU используется процессами пользовательского пространства или приложениями. Показано общее количество задач (156), количество запущенных задач (7), количество задач в спящем режиме (81) и другие. Также по умолчанию отображается список процессов по потреблению ЦП.

Мониторинг процессов Linux

Команда top предоставляет в реальном времени всех запущенных процессов в системе Linux вместе с использованием процессора и памяти.

top

htop – Linux Process Viewer

htop – это интерактивный просмотрщик и менеджер процессов системы Linux, который показывает информацию обо всех запущенных процессах по использованию процессора и памяти в системе.

Чтобы установить htop на ваш дистрибутив Linux, выполните:

sudo apt install htop             [On Debian, Ubuntu and Mint]
sudo yum install htop             [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-process/htop   [On Gentoo Linux]
sudo apk add htop                 [On Alpine Linux]
sudo pacman -S htop               [On Arch Linux]
sudo zypper install htop          [On OpenSUSE]

Следующий скриншот инструмента мониторинга htop, показывает список запущенных процессов по использованию процессора.

# htop

На основании цифр, которые вы видели на предыдущих скриншотах, метрика использования CPU делится на три основные категории или состояния:

  • user – показывает процент процессорного времени, используемого процессами пользовательского пространства.
  • system – показывает процент процессорного времени, используемого ядром.
  • idle – показывает процент процессорного времени, которое активно не используется.

Дополнительно, существуют также следующие подсостояния процессора:

  • nice – подмножество состояния пользователя, которое показывает процент процессорного времени, занятого процессами пользовательского уровня с положительным значением nice (более низкий приоритет планирования, чем у других процессов).
  • irq или hi – показывает процент процессорного времени, потраченного на обслуживание аппаратных прерываний.
  • softirq или si – показывает процент процессорного времени, потраченного на обслуживание программных прерываний.
  • iowait или wa – подмножество состояния простоя, показывающее процент процессорного времени, затраченного на ожидание операций ввода-вывода, таких как чтение и запись на диск или с диска.
  • steal – показывает процент процессорного времени, затраченного виртуальным процессором в гипервизоре на непроизвольное ожидание физического процессора для обработки времени.

Мониторинг использования ядер процессора Linux

Если ваш сервер имеет более одного процессора (иногда это называют многоядерной системой), вы также можете контролировать использование каждого ядра. В Glances просто нажмите 1, чтобы получить вид, подобный тому, что показан на следующем снимке экрана.


Вы также можете выполнить следующую команду, чтобы узнать общее количество процессоров на вашем сервере:

cat /proc/cpuinfo | grep ^processor

Чтобы найти топ запущенных процессов по использованию процессора, выполните следующую команду ps:

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

2. Мониторинг загрузки процессора системы Linux

Загрузка CPU – это количество процессов/потоков, которые используют или хотят использовать время процессора. В Linux это не только выполняемые задачи (не заблокированные ничем, готовые к работе на ЦП или ожидающие в очереди на выполнение), но и задачи в состоянии непрерывного сна, например, процесс, ожидающий завершения операции ввода/вывода или другие.

Это не то же самое, что использование процессора, о котором мы говорили выше. Средняя нагрузка – это средняя загрузка системы за определенное время, обычно за одну, пять и пятнадцать минут в Linux. Ваша система простаивает, если среднее значение нагрузки равно 0,0.

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

glances

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

Помните, что если 1-минутное среднее значение выше 5- или 15-минутного, как в предыдущем примере (68.24, 27.55, 12.11), то это показатель того, что загрузка процессора растет. Если же 1-минутное среднее значение ниже 5- или 15-минутного, то нагрузка снижается.

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

uptime
w

Причины высокого использования ЦП или нагрузки на ЦП

Некоторые из наиболее распространенных причин высокого или экстремально высокого уровня ЦП включают запуск нескольких приложений/служб с интенсивным использованием ЦП на одном сервере (с низкими характеристиками ресурсов), а также вредоносное ПО, предназначенное для многократного повторения с целью истощения системных ресурсов. Потоковые и игровые приложения также могут вызывать чрезвычайно высокое использование ЦП и загрузку ЦП при высоком трафике.

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

Примечание: Возможно иметь низкий процент использования процессора при очень высокой загрузке системы или процессора. Такая ситуация может быть вызвана наличием большого количества потоков в состоянии беспрерывного сна плюс нормальная нагрузка на процессор.

Эффекты высокого использования процессора или нагрузки на процессор

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

Минимизация высокого использования процессора и перегрузки процессора

Следующие способы решения проблемы высокого использования процессора или нагрузки на систему в серверах Linux:

  • Быстрое добавление дополнительных процессоров, особенно в виртуальных средах.
  • При необходимости перезапустите приложения с интенсивным использованием процессора.
  • Остановите/отключите неиспользуемые службы/приложения.
  • Проверьте наличие ошибок или неоптимизированного кода в пользовательских приложениях, которые могут привести к бесконечным циклам.
  • Ограничьте количество соединений или запросов, разрешенных на веб-серверах, серверах приложений и системах баз данных, чтобы смягчить DoS или DDoS атаки.
  • При необходимости перезагружайте сервер, если он начинает зависать.
  • Используйте скрипты или приложения мониторинга для настройки системных предупреждений, которые срабатывают при аномально высоком использовании процессора.
Зарубин Иван Эксперт по Linux и Windows

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

Похожие статьи

Комментарии (0)