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: сколько процентов было «украдено» виртуальной машиной — в случае, если гипервизору понадобилось увеличить собственные ресурсы
Читайте также:  Extracting exe files in linux

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

Также вы можете нажимать на кнопку 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%, администратор будет получать письмо на электронную почту. Соответственно, значения в скрипте можно изменить под ваши требования — к примеру поменять тайминги, выводить алерт в консоль, отправлять оповещения в лог и т.д.

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

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

Читайте также:  Install java on linux machine

Заключение

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

Источник

Как просмотреть нагрузку на процессор в Linux

В Linux потребление ресурсов CPU, с сортировкой по наибольшей загрузке, можно посмотреть при помощи двух команд: ps и top.

Важный нюанс: Значение в столбце «CPU» в обоих командах считается от загрузки одного ядра процессора. Таким образом сумма процентов на многоядерных машинах будет больше 100%. К примеру для четырехядерного процессора суммарный процент потребления всех процессов не может превышать 400%.

Рассмотрим каждую из команд подробней.

Команда ps

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

$ ps -aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 30799 51.2 8.1 2733764 285136 ? Rl 09:25 5:30 /usr/lib/chromium-browser/chromium-browser --ppapi-flash-path=/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so --ppap user 2800 0.1 6.6 9972812 234184 ? Sl окт31 1:26 /usr/bin/plasmashell --shut-up user 31308 2.4 5.3 1767496 188672 ? Sl 09:26 0:13 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31011 3.9 5.3 1793296 186812 ? Sl 09:25 0:25 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31369 5.5 4.8 1378568 171328 ? Sl 09:28 0:23 /usr/lib/libreoffice/program/soffice.bin --writer --splash-pipe=5 user 14442 12.1 4.2 1050808 150148 ? Sl 01:19 60:04 /usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet --graceTime 5000 --ksldfd 26 user 31111 0.9 3.8 1708496 134564 ? Sl 09:25 0:06 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1225 0.0 3.7 3639148 132092 ? Sl окт31 1:00 /usr/bin/plasmashell --shut-up user 31078 0.6 3.7 1724480 130724 ? Sl 09:25 0:03 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 30986 0.7 3.3 1717860 117660 ? Sl 09:25 0:04 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1216 1.7 3.2 3271220 113736 ? Sl окт31 20:36 kwin_x11

Важными столбцами являются:

  • USER Пользователь, от имени которого работает процесс
  • PID Идентификатор процесса
  • %CPU Процент загрузки ядра

Согласно данному выводу можно понять, что экземпляр программы dd с PID=31712 практически полностью использует одно ядро процессора.

Команда top

Также загрузку процессора можно посмотреть в интерактивном режиме при помощи команды top. Для запуска введите в консоли ОС команду:

top - 15:13:56 up 8 days, 5:18, 4 users, load average: 0,01, 0,04, 0,05 Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 0,0 sy, 0,0 ni, 99,9 id, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 2060916 total, 1714780 used, 346136 free, 184580 buffers KiB Swap: 901116 total, 0 used, 901116 free, 999472 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 22684 root 20 0 24768 1476 1016 R 0,3 0,1 0:00.01 top 1 root 20 0 15444 756 612 S 0,0 0,0 0:08.79 init 2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 1:08.03 ksoftirqd/0 5 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kworker/u:0 6 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/0 7 root rt 0 0 0 0 S 0,0 0,0 0:02.81 watchdog/0 8 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/1 10 root 20 0 0 0 0 S 0,0 0,0 0:04.40 ksoftirqd/1 12 root rt 0 0 0 0 S 0,0 0,0 0:02.40 watchdog/1 13 root rt 0 0 0 0 S 0,0 0,0 0:01.50 migration/2 15 root 20 0 0 0 0 S 0,0 0,0 0:04.33 ksoftirqd/2 16 root rt 0 0 0 0 S 0,0 0,0 0:02.26 watchdog/2 17 root rt 0 0 0 0 S 0,0 0,0 0:00.49 migration/3 19 root 20 0 0 0 0 S 0,0 0,0 0:03.73 ksoftirqd/3 20 root rt 0 0 0 0 S 0,0 0,0 0:02.21 watchdog/3 21 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 cpuset 22 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 khelper 23 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kdevtmpfs 24 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 netns 25 root 20 0 0 0 0 S 0,0 0,0 0:01.84 sync_supers 26 root 20 0 0 0 0 S 0,0 0,0 0:00.05 bdi-default 27 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kintegrityd 28 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kblockd 30 root 20 0 0 0 0 S 0,0 0,0 0:08.20 kworker/2:1 31 root 20 0 0 0 0 S 0,0 0,0 0:01.98 kworker/3:1 32 root 20 0 0 0 0 S 0,0 0,0 0:00.32 khungtaskd 33 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kswapd0 34 root 25 5 0 0 0 S 0,0 0,0 0:00.00 ksmd 35 root 39 19 0 0 0 S 0,0 0,0 0:00.00 khugepaged 36 root 20 0 0 0 0 S 0,0 0,0 0:00.00 fsnotify_mark 37 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 crypto 103 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ata_sff 111 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_0 114 root 20 0 0 0 0 S 0,0 0,0 0:00.01 scsi_eh_1 115 root 20 0 0 0 0 S 0,0 0,0 0:15.02 kworker/u:1 119 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt_poll_0 137 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt/0 165 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_2 169 root 20 0 0 0 0 S 0,0 0,0 0:11.68 kworker/3:2 177 root 20 0 0 0 0 S 0,0 0,0 1:37.28 kworker/1:2 207 root 20 0 0 0 0 S 0,0 0,0 0:07.77 flush-8:0 213 root 20 0 0 0 0 S 0,0 0,0 0:21.32 jbd2/sda1-8 214 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ext4-dio-unwrit 355 root 20 0 24140 1468 816 S 0,0 0,1 0:00.06 udevd 502 root 20 0 24100 1096 468 S 0,0 0,1 0:00.00 udevd 503 root 20 0 24100 1028 408 S 0,0 0,0 0:00.00 udevd 527 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kpsmoused 528 root 20 0 0 0 0 S 0,0 0,0 0:04.36 kworker/2:2 555 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ttm_swap 1842 root 20 0 152m 8928 4548 S 0,0 0,4 8:15.13 vmtoolsd 1885 root 20 0 60288 9396 6444 S 0,0 0,5 0:00.04 VGAuthService 1979 root 20 0 199m 5016 4128 S 0,0 0,2 3:19.79 ManagementAgent

Важными столбцами являются:

  • USER Пользователь, от имени которого работает процесс
  • PID Идентификатор процесса
  • %CPU Процент загрузки ядра
Читайте также:  Canon lbp 2900 astra linux driver

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

Источник

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