Проверка нагрузки сервера linux

Загрузка ЦПУ в Linux — насколько варит ваш котелок

img

Понимать состояние ваших серверов с точки зрения их загрузки и производительности — крайне важная задача. В этой статье мы опишем несколько самых популярных методов для проверки и мониторинга загрузки ЦПУ на Linux хосте.

 загрузка ЦПУ в Linux

Методы проверки

Проверяем загрузку процессора с помощью команды top

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

Команда состоит всего из трех букв: top

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

Вывод команды top

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

Три числа показывают среднюю загрузку: за 1, 5 и 15 минут соответственно. Считайте, что эти числа — это процентная загрузка, т.е 0.2 означает 20%, а 1.00 — стопроцентную загрузку. Это звучит и выглядит достаточно логично, но иногда там могут проскакивать странные значения — вроде 2.50. Это происходит из-за того, что этот показатель не прямое значение загрузки процессора, а нечто вроде общего количества «работы», которое ваша система пытается выполнить. К примеру, значение 2.50 означает, что текущая загрузка равна 250% и ваша система на 150% перегружена.

Вторая строчка достаточна понятна и просто показывает количество задач, запущенных в системе и их текущий статус.

Третья строчка позволит вам отследить загрузку ЦПУ с подробной статистикой. Но здесь нужно сделать некоторые комментарии:

  • us: процент времени, когда ЦПУ был загружен и которое было затрачено на user space (созданные/запущенные пользователем процессы)
  • sy: процент времени, когда ЦПУ был загружен и которое было затрачено на на kernel (системные процессы)
  • ni: процент времени, когда ЦПУ был загружен и которое было затрачено на приоритезированные пользовательские процессы (системные процессы)
  • id: процент времени, когда ЦПУ не был загружен
  • wa: процент времени, когда ЦПУ ожидал отклика от устройств ввода — вывода (к примеру, ожидание завершения записи информации на диск)
  • hi: процент времени, когда ЦПУ получал аппаратные прерывания (например, от сетевого адаптера)
  • si: процент времени, когда ЦПУ получал программные прерывания (например, от какого-то приложения адаптера)
  • st: сколько процентов было «украдено» виртуальной машиной — в случае, если гипервизору понадобилось увеличить собственные ресурсы
Читайте также:  Google automatic redirect

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

Также вы можете нажимать на кнопку t, чтобы прокручивать между различными вариантами вывода информации и использовать кнопку q для выхода из top

Немного более модный способ: htop

Существует более удобная утилита под названием htop, которая предоставляет достаточно удобный интерфейс с красивым форматированием. Установка утилиты экстремально проста:

Для Ubuntu и Debian:

Для CentOS и Red Hat:

После установки просто введите команду ниже:

Вывод команды htop

Как видно на скриншоте, htop гораздо лучше подходит для простой проверки степени загрузки процессора. Выход также осуществляется кнопкой q

Прочие способы проверки степени загрузки ЦПУ

Есть еще несколько полезных утилит, и одна из них (а точнее целый набор) называется sysstat.

Установка для Ubuntu и Debian:

sudo apt-get install sysstat

Установка для CentOS и Red Hat:

Как только вы установите systat, вы сможете выполнить команду mpstat — опять же, практически тот же вывод, что и у top, но в гораздо лаконичнее.

Вывод команды mpstat

Следующая утилита в этом пакете это sar. Она наиболее полезна, если вы ее вводите вместе с каким-нибудь числом, например 6. Это определяет временной интервал, через который команда sar будет выводить информацию о загрузке ЦПУ.

Вывод команды sar

К примеру, проверяем загрузку ЦПУ каждые 6 секунд:

Если же вы хотите остановить вывод после нескольких итераций, например 10, добавьте еще одно число:

Так вы также увидите средние значения за 10 выводов.

Как настроить оповещения о слишком высокой нагрузке на процессор

Одним из самых правильных способов является написание простого bash скрипта, который будет отправлять вам алерты о слишком высокой степени утилизации системных ресурсов.

#!/bin/bash CPU=$(sar 1 5 | grep "Average" | sed 's/^.* //') CPU=$( printf "%.0f" $CPU ) if [ "$CPU" -lt 20 ] then echo "CPU usage is high!" | sendmail admin@example.com fi

Скрипт будет использовать обработчик sed и среднюю загрузку от команды sar. Как только нагрузка на сервер будет превышать 85%, администратор будет получать письмо на электронную почту. Соответственно, значения в скрипте можно изменить под ваши требования — к примеру поменять тайминги, выводить алерт в консоль, отправлять оповещения в лог и т.д.

Читайте также:  Vnc viewer kali linux

Естественно, для выполнения этого скрипта нужно будет запустить его по крону:

Для ежеминутного запуска введите:

Заключение

Соответственно, лучшим способом будет комбинировать эти способы — например использовать htop при отладке и экспериментах, а для постоянного контроля держать запущенным скрипт.

Источник

Контроль нагрузки и процессов: top, htop, atop

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

Для анализа нагрузки сервера с ОС Linux чаще всего используют утилиты:

  • top – стандартная утилита, установлена во всех версиях Linux по умолчанию,
  • htop – удобнее в использовании по сравнению с top, интерактивна,
  • atop – позволяет вести логи.

top

Для запуска просто подключитесь к своему серверу по SSH и выполните:

В результате будет отображено следующее:

load-and-process-control-top-htop-atop_20221025_174732_1

load-and-process-control-top-htop-atop_20221025_174732_2

Вывод утилиты htop имеет такую же структуру, как и top – в верхней части находится информация о системе: нагрузка на процессор, занятая оперативная память, средняя нагрузка за 1, 5 и 15 минут. Под ней — список процессов, отсортированных по степени нагрузки на процессор.

Изменение сортировки производится как и в top:

Дополнительные команды:

  • Пробел — отметить процесс (удобно использовать для выполнения операций над группой процессов),
  • u – отобразить процессы определенного пользователя

Для управления htop используются функциональные клавиши:

  • F1 – справка
  • F2 – изменение параметров вывода
  • F3 — поиск процессов
  • F4 — фильтрация процессов (поиск по части названия)
  • F5 — отображение дерева процессов – родительские и дочерние
  • F6 – изменение сортировки
  • F7 – повышение приоритета
  • F8 — понижение приоритета
  • F9 — завершение процесса (нужно выделить процесс мышью или клавиатурой, в top вводится PID процесса)
  • F10 – завершение работы программы
Читайте также:  Жесткая ссылка linux папка

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

atop

Утилиту atop удобно использовать для диагностики «плавающих» ошибок. Она позволяет вести логи, т.е. контролировать работу процессов за прошедший период.

Утилита atop не является встроенной как top, ее нужно установить на сервер:

Для более эффективного использования рекомендуется добавить atop в автозагрузку:

Вывод утилиты atop выглядит так:

load-and-process-control-top-htop-atop_20221025_174732_3

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

Команды для управления в утилите atop:

  • m — сортировка процессов по использованию памяти
  • d — сортировка процессов по нагрузке на диск
  • n — сортировка процессов по нагрузке на сеть (доступна при установленном патче ядра)
  • u – отображение нагрузки по пользователю
  • v — подробная информация по процессу
  • i — задание интервала обновления вывода (стандартно 10 секунд)
  • g – восстановить вывод по умолчанию

Shift+d, Shift+m, Shift+n – сортировка текущего списка по заданным параметрам: диск, память, сеть.

Логи atop

Утилита atop по умолчанию сохраняет данные о состоянии системы каждые 10 минут. Файл лога располагается в директории /var/log/atop.

Имя файла логов за день имеет вид atop_ГГГГММДД.

Для просмотра, например, лога за 1 июля 2020 года, введите:

atop -r /var/log/atop/atop_20200701

Для изменения настройки лога откройте файл конфигурации утилиты atop. Он размещается в /etc/default/atop (в CentOS — etc/sysconfig/atop).

Данный параметр задает интервал сохранения информации о нагрузки (в секундах). Для того чтобы установить интервал 20 минут — введите значение INTERVAL=1200

Данный параметр задает путь к директории с логами.

Данный параметр задает имена файлов логов.

Чтобы изменения вступили в силу, перезапустите atop:

systemctl restart atop.service

Для ускорения работы сайта мы рекомендуем переносить временные файлы MySQL в tmpfs.

Если у Вас остались вопросы — создайте тикет в техподдержку.

Источник

Оцените статью
Adblock
detector