- Как просмотреть нагрузку на процессор в Linux
- Команда ps
- Команда top
- Как узнать загрузку процессора и памяти в Linux — команда vmstat
- Как нужно оценивать производительность?
- Синтаксис команды vmstat
- Опции vmstat
- Примеры использования vmstat
- Заключение
- 9 команд для проверки информации о CPU в Linux
- 🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты
- Метод 1: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
- Метод 2: Скрипт Linux Shell для мониторинга загрузки процессора и отправки электронной почты
- 2 thoughts on “ 🧨 Linux шелл скрипт для мониторинга загрузки процессора и отправки электронной почты ”
Как просмотреть нагрузку на процессор в Linux
В Linux потребление ресурсов CPU, с сортировкой по наибольшей загрузке, можно посмотреть при помощи двух команд: ps и top.
Важный нюанс: Значение в столбце «CPU» в обоих командах считается от загрузки одного ядра процессора. Таким образом сумма процентов на многоядерных машинах будет больше 100%. К примеру для четырехядерного процессора суммарный процент потребления всех процессов не может превышать 400%.
Рассмотрим каждую из команд подробней.
Команда ps
Для запуска введите в консоли ОС команду:
Пример вывода команды:
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу можно понять, что экземпляр программы dd с PID=31712 практически полностью использует одно ядро процессора.
Команда top
Также загрузку процессора можно посмотреть в интерактивном режиме при помощи команды top. Для запуска введите в консоли ОС команду:
Пример вывода команды:
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу видно, что два процесса браузера Chromium используют по 40% возможностей одного из ядер процессора.
Источник
Как узнать загрузку процессора и памяти в Linux — команда vmstat
Производительность (или непроизводительность) систем очень сложно оценивать «на глаз» или даже с секундомером. Ведь даже если это и получится, то из виду будут упущены ключевые детали, предоставляющие информацию о том, почему производительность может быть именно такой, а не больше (или меньше). Для выяснения причин стоит углубиться в анализ этой самой производительности более основательно. И для этих целей существуют специализированные утилиты, одной из которых является vmstat – довольно популярный инструмент (после команды top разве что), которым пользуются многие системные администраторы Linux.
Как нужно оценивать производительность?
Вообще, производительность и/или быстродействие — величины постоянные только для конкретного (и довольно короткого) промежутка времени для конкретной системы. Для более объективной оценки необходимо проводить многочисленные «замеры» в разное время в течении довольно длительного (месяц и более) периода.
Немаловажно и то, что анализ следует проводить без использования всевозможных «синтетических» тестов — т. е. только в условиях реальной и пиковой нагрузки, возникающей во время реальный задач, предусмотренных техпроцессом, регламентом в рамках реальной «производственной» необходимости. Очень часто именно в таких условиях можно выявить ошибки в конфигурации системы, приводящие к ограничениям в использовании программно-аппаратных ресурсов.
Синтаксис команды vmstat
Утилитой vmstat можно анализировать не только использование процессора, но также память — оперативную и/или дисковую. Синтаксис команды следующий:
Основными аргументами являются delay – время (в секундах), в течение которого следует производить замер, а также count – количество замеров или отчётов. Если дать команду vmstat без указания количества замеров, то она будет выводить отчёты, пока не будет прервано её выполнение сочетанием клавиш .
Вывод vmstat разбит на столбцы, которые объединены в следующие категории:
- procs – информация о процессах;
- memory – состояние оперативной памяти;
- swap – состояние виртуальной памяти (раздел или файл подкачки);
- io – активность устройств хранения (диски, флешки и т. д.);
- system – общая активность системы;
- cpu – использование центрального процессора.
Как уже было отмечено выше, эти категории объединяют колонки из вывода vmstat по соответствующему типу информации. Стоит рассмотреть их по отдельности. Для раздела procs:
- r – количество процессов в обрабатываемой процессором очереди;
- b – количество процессов, стоящих в очереди на выполнение операций ввода/вывода.
Для раздела memory:
- free – размер свободной памяти. То же значение, которое определяется командой free;
- swpd – количество блоков, которые были перемещены в Swap;
- buff – буферы памяти;
- cache – кеш памяти.
- si – общее количество блоков, считываемых системой из Swap;
- so – общее количество блоков, перемещаемых системой в Swap.
- bi – количество блоков в секунду, считываемых с диска;
- bo – количество блоков в секунду, записанных на диск.
- in – частота (количество в секунду) системных прерываний;
- cs – частота переключений между задачами.
- us – используемое (в процентах) время для выполнения «пользовательских» (т. е. не принадлежащих ядру) задач;
- sy — используемое (в процентах) время для выполнения задач ядра;
- id – время (в процентах) в простое;
- wa — время (в процентах), отведённое на ожидание операций ввода/вывода.
Опции vmstat
Доступные для vmstat опции приведены в следующей таблице:
Опция | Назначение |
-a, — active | Выводит активную и неактивную память. Доступно начиная с ядра версии 2.5.41 и выше. |
-f, — forks | Выводит количество системных вызовов fork, vfork и rfork, а также страниц виртуальной памяти, используемых этими вызовами. |
-m, — slabs | Количество используемой динамической памяти для ядра. |
-n, —one-header | Отображает заголовок таблицы результатов только один раз, а не периодически. |
-s, — stats | Переключение режима отображения вывода. |
-d, — disk | Выводит статистику использования диска. |
-w | Для больших объёмов данных увеличивает визуально ширину столбцов. |
-p, — partition device | Выводит статистику использования раздела. Необходимо указывать раздел device. |
-S, —unit character | Выводит статистику в указанных единицах [k, K, m, M] – в килобитах, килобайтах, мегабитах и мегабайтах соответственно. |
— t, —timestamp | Добавлять к выводу время замеров. |
— D, —disk-sum | Выводит общую статистику по использованию дисков. |
Примеры использования vmstat
Несмотря на то, что опции vmstat и позволяют получить ценные сведения, однако в большинстве случаев системные администраторы их практически не используют. Чаще всего использование vmstat сводится к следующему (что вполне достаточно):
Вообще, сервер общего назначения считается хорошо отбалансирован в плане нагрузки, если около 50% времени он тратит на обработку пользовательских задач и ещё столько же — на работу системных вызовов, взаимодействующих с ядром. Простои в системе должны быть — это потенциал для увеличения нагрузки, но в то же время они (простои) не должны быть слишком большими — это значит, что мощности сервера расходуются впустую.
Из приведённого примера следует, что центральный процессор практически постоянно переключается между высоконагруженными режимами и периодами почти полного простоя. Таким образом, можно сделать вывод, что необходима настройка используемого в работе сервера ПО и системной конфигурации для более равномерного распределения нагрузки.
Заключение
Как можно видеть, даже без использования графических приложений с графиками и диаграммами, обычная команда vmstat способна дать наглядную картину происходящего, касающегося использования ресурсов системы. Ну а самые объективные и достоверные результаты анализа производительности могут зависеть от применяемой для каждого конкретного случая методики.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
9 команд для проверки информации о CPU в Linux
Информация об аппаратном обеспечении CPU
Информация о CPU (Central Processing Unit. Центральный процессор) включает в себя подробные сведения о процессоре, такие как архитектура, название производителя, модель, количество ядер, скорость каждого ядра и т.д.
В linux существует довольно много команд для получения подробной информации о CPU.
В этой статье мы рассмотрим некоторые из часто встречающихся команд, которые можно использовать для получения подробной информации о CPU.
1. /proc/cpuinfo
Файл /proc/cpuinfo содержит подробную информацию об отдельных ядрах CPU.
Выведите его содержимое с помощью less или cat .
Каждый процессор или ядро перечислены отдельно, а различные подробности о скорости, размере кэша и названии модели включены в описание.
Чтобы подсчитать количество процессоров, используйте grep с wc
Количество процессоров, показанное в /proc/cpuinfo, может не соответствовать реальному количеству ядер процессора. Например, процессор с 2 ядрами и гиперпоточностью будет показан как процессор с 4 ядрами.
Чтобы получить фактическое количество ядер, проверьте идентификатор ядра на наличие уникальных значений
Соответственно, есть 4 разных идентификатора ядра. Это указывает на то, что существует 4 реальных ядра.
2. lscpu — отображение информации об архитектуре CPU
lscpu — это небольшая и быстрая команда, не требующая никаких опций. Она просто выводит информацию об аппаратном обеспечении CPU в удобном для пользователя формате.
3. hardinfo
Hardinfo — это gui инструмент на базе gtk, который генерирует отчеты о различных аппаратных компонентах. Но он также может запускаться из командной строки, в случае если отсутствует возможность отображения gui (Graphical User Interface — графический интерфейс пользователя).
Он создаст большой отчет о многих аппаратных частях, читая файлы из каталога /proc. Информация о CPU находится в начале отчета. Отчет также может быть записан в текстовый файл.
Hardinfo выполняет несколько эталонных тестов, занимающих несколько минут, прежде чем вывести отчет на экран.
4. lshw
Команда lshw может отобразить ограниченную информацию о CPU. lshw по умолчанию показывает информацию о различных аппаратных частях, а опция ‘ -class ‘ может быть использована для сбора информации о конкретной аппаратной части.
Производитель, модель и скорость процессора отображаются правильно. Однако из приведенного выше результата невозможно определить количество ядер в процессоре.
Чтобы узнать больше о команде lshw, ознакомьтесь с этой статьей:
5. nproc
Команда nproc просто выводит количество доступных вычислительных блоков. Обратите внимание, что количество вычислительных блоков не всегда совпадает с количеством ядер.
6. dmidecode
Команда dmidecode отображает некоторую информацию о CPU, которая включает в себя тип сокета, наименование производителя и различные флаги.
7. cpuid
Команда cpuid собирает информацию CPUID о процессорах Intel и AMD x86.
Программа может быть установлена с помощью apt на ubuntu
А вот пример вывода
8. inxi
Inxi — это скрипт, который использует другие программы для создания хорошо структурированного легко читаемого отчета о различных аппаратных компонентах системы. Ознакомьтесь с полным руководством по inxi.
Вывод соответствующей информации о CPU/процессоре
Чтобы узнать больше о команде inxi и ее использовании, ознакомьтесь с этой статьей:
9. Hwinfo
Команда hwinfo — это программа для получения информации об оборудовании, которая может быть использована для сбора подробных сведений о различных аппаратных компонентах в системе Linux.
Она также отображает информацию о процессоре. Вот быстрый пример:
Если не использовать опцию «—short», команда отобразит гораздо больше информации о каждом ядре CPU, например, архитектуру и характеристики процессора.
Чтобы более подробно изучить команду hwinfo, ознакомьтесь с этой статьей:
Заключение
Это были некоторые команды для проверки информации о CPU в системах на базе Linux, таких как Ubuntu, Fedora, Debian, CentOS и др.
Примеры других команд для проверки информации о CPU смотрите в этой статье:
Большинство команд обрабатываются с помощью интерфейса командной строки и выводятся в текстовом формате. Для GUI интерфейса используйте программу Hardinfo.
Она показывает подробности об аппаратном обеспечении различных компонентов в простом для использования GUI интерфейсе.
Если вы знаете какую-либо другую полезную команду, которая может отображать информацию о CPU, сообщите нам об этом в комментариях ниже
Если вы хотели бы узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.
А если вам интересно развитие в этой сфере с нуля до pro, рекомендуем ознакомиться с учебной программой специализации.
Источник
🧨 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 минут
Источник