- bash загруженность CPU
- 15 секунд гугл-фу
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Загрузка ЦПУ в Linux — насколько варит ваш котелок
- Методы проверки
- Проверяем загрузку процессора с помощью команды top
- Немного более модный способ: htop
- Прочие способы проверки степени загрузки ЦПУ
- Как настроить оповещения о слишком высокой нагрузке на процессор
- Заключение
- 🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты
- Метод 1: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
- Метод 2: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
- 2 thoughts on “ 🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты ”
- Загрузка процессора Linux
- Как посмотреть загрузку процессора в Linux
- 1. Утилита htop
- 2. Файл /proc/loadavg
- 3. Утилита mpstat
- 4. Команда nmon
- 5. CoreFreq
- Выводы
bash загруженность CPU
Как узнать на сколько % загружен CPU ? какая команда в bash, что бы получить только цифру в ответ? Заранее спасибо!
load average не подойдет? А то можно взять из uptime . Ну еще можно /proc/stat парсить.
15 секунд гугл-фу
У меня только то что после запятой показывает — idle 96,7, в результате получаю загрузку CPU 93%.
Вариант с ps из твоей ссылки лучше.
и у меня все время выдает 100%
И это совпадает с тем что по факту?
Вот так надо в этом случае:
ну учитывая что кроме этой команды на сервере ничего не запущено, то думаю нет)
Лично я, когда какаю, никаких команд не набираю. И тебе не советую!
Шапку top’а покажи.
Просто у тебя вместо LANG=en_US.UTF-8 стоит какая-нибудь ru_RU-хренотень.
Ну про локаль ТС ничего не писал, да и нужно все-таки стараться писать «кросплатформенные» (в данном случа кросслокальные) вещи.
В общем используй такой вариант
Как выше сказали могут быть проблемы с локалями, и я что-то не могу понять как там нормально это распарсить sed’ом.
Либо вот еще вариант
В общем погугли.
Позорище. Какое же это мозорище.
Во-первых top может выдавать сведения по потребностям.
Во-вторых грепом можно вырезать по потребностям.
В-третьих unixwayон вообще по потребностям.
Это не правда, чтоо linux -окружение недружелюбное. Просто оно тщательно выбирает себе друзей.
Шта? Ничего не понятно. По каким потребностям? Есть потребность получить информацию. При чем тут top, grep и вообще unixway?
блин, в первом случае такая фигня https://pp.vk.me/c622627/v622627362/2887d/tBcn33tCN8U.jpg во втором опять 100%, печаль беда((
Почему фигня то (в первом случае) если у тебя проц простаивает? Со вторым у меня работает, не пойму почему у тебя не работает.
я вроде загрузил командой cat /dev/urandom > /dev/null & cat /dev/urandom > /dev/nullcat& там сверху top, вроде грузят проц, а выходит ответ 0. %
Ребят спрошу у вас, я хочу запускать потоки определенного скрипта пока цпу не будет загруже на 80%, разумно ли это?
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Загрузка ЦПУ в Linux — насколько варит ваш котелок
Понимать состояние ваших серверов с точки зрения их загрузки и производительности — крайне важная задача. В этой статье мы опишем несколько самых популярных методов для проверки и мониторинга загрузки ЦПУ на Linux хосте.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Методы проверки
Проверяем загрузку процессора с помощью команды top
Отличным способом проверки загрузки является команда top. Вывод этой команды выглядит достаточно сложным, зато если вы в нем разберетесь, то точно сможете понять какие процессы занимают большую часть ваших вычислительных мощностей.
Команда состоит всего из трех букв: top
У вас откроется окно в терминале, которое будет отображать запущенные сервисы в реальном времени, долю системных ресурсов, которую эти сервисы потребляют, общую сводку по загрузке CPU и т.д
Будем идти по порядку: первая строчка отображает системное время, аптайм, количество активных пользовательских сессий и среднюю загруженность системы. Средняя загруженность для нас особенно важна, т.к дает понимание о среднем проценте утилизации ресурсов за некоторые промежутки времени.
Три числа показывают среднюю загрузку: за 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: сколько процентов было «украдено» виртуальной машиной — в случае, если гипервизору понадобилось увеличить собственные ресурсы
Следующие две строчки показывают сколько занято/свободно оперативно памяти и файла подкачки, и не так релевантны относительно задачи проверки нагрузки на процессор. Под информацией о памяти вы увидите список процессов и процент ЦПУ, который они тратят.
Также вы можете нажимать на кнопку t, чтобы прокручивать между различными вариантами вывода информации и использовать кнопку q для выхода из top
Немного более модный способ: htop
Существует более удобная утилита под названием htop, которая предоставляет достаточно удобный интерфейс с красивым форматированием. Установка утилиты экстремально проста:
Для Ubuntu и Debian:
sudo apt-get install htop
Для CentOS и Red Hat:
yum install htop
dnf install htop
После установки просто введите команду ниже:
Как видно на скриншоте, htop гораздо лучше подходит для простой проверки степени загрузки процессора. Выход также осуществляется кнопкой q
Прочие способы проверки степени загрузки ЦПУ
Есть еще несколько полезных утилит, и одна из них (а точнее целый набор) называется sysstat.
Установка для Ubuntu и Debian:
sudo apt-get install sysstat
Установка для CentOS и Red Hat:
yum install sysstat
Как только вы установите systat, вы сможете выполнить команду mpstat — опять же, практически тот же вывод, что и у top, но в гораздо лаконичнее.
Следующая утилита в этом пакете это sar. Она наиболее полезна, если вы ее вводите вместе с каким-нибудь числом, например 6. Это определяет временной интервал, через который команда sar будет выводить информацию о загрузке ЦПУ.
К примеру, проверяем загрузку ЦПУ каждые 6 секунд:
Если же вы хотите остановить вывод после нескольких итераций, например 10, добавьте еще одно число:
Так вы также увидите средние значения за 10 выводов.
Как настроить оповещения о слишком высокой нагрузке на процессор
Одним из самых правильных способов является написание простого bash скрипта, который будет отправлять вам алерты о слишком высокой степени утилизации системных ресурсов.
Скрипт будет использовать обработчик sed и среднюю загрузку от команды sar. Как только нагрузка на сервер будет превышать 85%, администратор будет получать письмо на электронную почту. Соответственно, значения в скрипте можно изменить под ваши требования — к примеру поменять тайминги, выводить алерт в консоль, отправлять оповещения в лог и т.д.
Естественно, для выполнения этого скрипта нужно будет запустить его по крону:
Для ежеминутного запуска введите:
Заключение
Соответственно, лучшим способом будет комбинировать эти способы — например использовать htop при отладке и экспериментах, а для постоянного контроля держать запущенным скрипт.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты
Существует множество инструментов с открытым исходным кодом для мониторинга производительности систем Linux.
Они отправляют уведомление по электронной почте, когда система достигнет заданного порогового значения.
Они контролируютт все, например, использование ЦП, использование памяти, использование подкачки, использование дискового пространства и многое другое.
Если у вас мало систем и вы хотите их контролировать, то для этого можно написать небольшой скрипт оболочки.
В этом уроке мы добавили два скрипта оболочки для мониторинга загрузки процессора в системе Linux.
Когда система достигает заданного порогового значения, скрипт отправляет сообщение по электронной почте с соответствующим идентификатором.
Метод 1: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
Если вы хотите получать процент использования ЦП по почте только тогда, когда система достигает заданного порога, используйте следующий скрипт
Это очень простой и понятный и однострочный скрипт.
Он вызовет электронную почту, когда ваша система достигнет 80% загрузки ЦП.
Примечание. Вам необходимо изменить идентификатор электронной почты вместо нашего. Кроме того, вы можете изменить пороговое значение загрузки процессора в соответствии с вашими требованиями.
Вывод: вы получите оповещение по электронной почте, аналогичное приведенному ниже.
В прошлом мы добавили много полезных скриптов оболочки.
Если вы хотите проверить их, перейдите по ссылке ниже.
Метод 2: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
Если вы хотите получить больше информации об использовании процессора в почтовом предупреждении, тогда используйте следующий скрипт, который включает в себя подробности процесса загрузки ЦП, основанные на верхних командах и командах ps.
Он непостоянно будет давать вам представление о том, что происходит в вашей системе.
Он вызовет электронную почту, когда ваша система достигнет 80% загрузки ЦП.
Примечание. Вам необходимо изменить идентификатор электронной почты вместо нашего. Кроме того, вы можете изменить пороговое значение загрузки процессора в соответствии с вашими требованиями.
Наконец добавьте cronjob, чтобы автоматизировать это.
Он будет запускаться каждые 5 минут.
Примечание. Через 5 минут вы получите оповещение по электронной почте, поскольку запуск скрипта запланирован каждые 5 минут (но это не совсем 5 минут и зависит от времени).
Скажем например. Если ваша система достигнет предела в 8.25, вы получите оповещение по электронной почте через 5 минут. Надеюсь, теперь все ясно.
Вывод: вы получите оповещение по электронной почте, аналогичное приведенному ниже.
2 thoughts on “ 🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты ”
Здесь не работает if then
Сообщения просто шлются по крону каждые N минут
Источник
Загрузка процессора Linux
Чтобы узнать хватает ли мощности процессора вашему серверу или компьютеру надо посмотреть загрузку процессора в данный момент или за последнее время. Это значение показывает на сколько процентов используется вычислительная мощность процессора.
В этой статье мы рассмотрим несколько способов решения этой задачи с помощью привычных системных утилит и более сложных инструментов.
Как посмотреть загрузку процессора в Linux
1. Утилита htop
Самый простой способ узнать насколько процессор загружен в данный момент — воспользоваться утилитой htop. Она показывает не только процент загрузки по каждому ядру процессора отдельно, но и позволяет найти процессы, которые нагружают систему больше всего. Для установки htop в Debian или Ubuntu выполните:
sudo apt install htop
А в CentOS или REHL:
sudo yum install htop
Главное окно программы выглядит вот так:
Здесь в верхней части окна выводится загрузка ядер процессора в виде наглядных шкал, а ниже процессы. В данном примере у процессора 12 ядер и каждое из них загружено не больше чем на один процент.
2. Файл /proc/loadavg
Если надо сориентироваться какая была нагрузка на процессор в последнее время, тут htop не поможет. Можно воспользоваться файлом /proc/loadavg. Его создаёт ядро и в нём содержится информация о средней нагрузке за одну, пять и пятнадцать минут. Но обратите внимание, данные, находящиеся в этом файле не такие однозначные. Во первых, это не проценты, во вторых, они отображают не нагрузку на процессор, а нагрузку на систему в целом.
Первые три значения в этом файле означают среднее количество процессов или потоков, которые выполняются, находятся в очереди на выполнение или ждут завершения операций ввода/вывода за 1, 5 и 15 минут. Вот:
Обычно, если значение больше единицы — значит нагрузка уже большая и надо разбираться почему. Если значение за минуту меньше значений за пять и пятнадцать минут — нагрузка падает, если больше — растёт. Таким образом можно немного сориентироваться насколько загружена ваша система. Эти значения можно использовать для общего ориентирования или отправки уведомлений на почту, а для разбора полётов уже применять другие метрики и программы.
Четвертое значение здесь — это количество процессов — выполняемых в данный момент, обычно соответствует количеству процессоров, следующее число через слеш — это общее количество таких процессов в системе. Последнее значение — PID последнего созданного процесса.
3. Утилита mpstat
Утилита mpstat позволяет посмотреть подробную статистику по использованию процессора. Можно посмотреть не только информацию по каждому из ядер, но и куда используются ресурсы — на ввод/вывод, ядро или программы пространства пользователя. Для установки программы в Ubuntu или Debian выполните:
sudo apt install sysstat
В CentOS или REHL:
sudo yum install sysstat
Для просмотра общей информации выполните такую команду:
А для просмотра подробностей по каждому ядру процессора используйте опцию -P с параметром ALL:
Вот значения колонок в выводе этой программы:
- CPU — номер ядра процессора;
- %usr — потребление программами пространства пользователя;
- %nice — потребление ресурсов в процентах программами в пространстве пользователя с повышенным приоритетом;
- %sys — потребление ресурсов процессора ядром;
- %iowait — затраты на ожидание ввода/вывода;
- %irq — ресурсы, потраченные на прерывания для работы с аппаратным обеспечением;
- %soft — ресурсы, потраченные на программные прерывания;
- %steal — украденные процессорные ресурсы, актуально для виртуальных машин;
- %guest — ресурсы, потраченные на работу виртуального процессора;
- %idle — неиспользованные ресурсы.
Как видите, в данном случае нагрузка на процессор не достигает даже трех процента для некоторых ядер.
4. Команда nmon
Утилита nmon позволяет выводить данные, в виде, похожем на htop, но только немного подробнее. Для установки её в Ubuntu и Debian выполните:
sudo apt install nmon
Для установки в CentOS или REHL:
sudo yum install nmon
После запуска надо нажать кнопку c для того чтобы отобразить информацию о нагрузке на ядра процессора:
Здесь кроме наглядной шкалы по каждому ядру выводится информация в процентах по таким показателям:
- User% — ресурсы, потраченные программами в пространстве пользователя;
- Sys% — ресурсы, потраченные ядром;
- Wait% — ресурсы, которые идут на ожидание ввода/вывода;
Здесь уже можно сориентироваться насколько всё загружено и в чём проблема.
5. CoreFreq
Если всей полученной ранее информации о производительности вам мало, можно воспользоваться утилитой CoreFreq. Её нет в официальных репозиториях, поэтому придется собирать программу из исходников. Но зато она имеет свой модуль ядра, который устанавливает свои счетчики производительности в ядре и возвращает утилите наиболее подробные данные. Сначала установите необходимые компоненты. В Ubuntu:
sudo apt install dkms git libpthread-stubs0-dev
В CentOS или REHL:
sudo yum group install ‘Development Tools’
Затем скачайте репозиторий утилиты с GitHub и соберите её:
git clone https://github.com/cyring/CoreFreq.git
Загрузите модуль ядра такой командой:
sudo insmod corefreqk.ko
Запустите её сервис:
Затем запускайте программу:
Вверху программы отображается информация о процессоре, ниже шкалы с загруженностью каждого ядра, а её ниже различные показатели по каждому ядру: частота — Freq, ускорение — Turbo, C0-C7 — значения состояний C-State процессора. В данном примере, большинство ядер процессора работают на минимальной частоте и большую часть времени находятся в состоянии C1. Это состояние означает, что ядро не активно, но может в любой момент перейти к выполнению инструкций. Состояние C0 — означает, что ядро активно и выполняет какие-то действия.
С помощью этой утилиты вы сможете узнать максимально подробную информацию о загрузке процессора и о самом процессоре в целом.
Выводы
В этой небольшой статье мы рассмотрели как определяется загрузка процессора Linux с помощью различных утилит. Как системных, так и сторонних. А какие утилиты для таких целей используете вы? Напишите в комментариях!
Источник