Как установить mpstat linux

Обновлено: 07.07.2024

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

Вводные: мониторить будем загрузку и температуру процессора, загрузку оперативной памяти и свопа, свободное место на дисках, продолжительность аптайма, общую загрузку системы, температуру и состояние smart дисков по отдельности, и состояние raid (на сервере с ubuntu server 20 поднят простой софтовый raid1). Диски WD Green, материнская плата GA-525 со встроенным atom525.

На сервере умного дома уже поднят брокер mosquitto, поэтому в качестве метода передачи данных выбран mqtt.

В первых разделах сего труда приведены принципы примененных методов сбора данных, а в конце - скрипты передачи данных и настройки HA.

Все команды в примерах выполняются от пользователя root

Оглавление

Показания системных датчиков

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

Если она не установлена, поставим ее: apt-get install lm-sensors

Сначала надо найти все имеющиеся датчики. Запускаем команду sensors-detect
и отвечаем y на все вопросы. После этого можно поглядеть что получилось: sensors


Надо отметить, что лично у меня sensors стал выводить все найденные датчики только после перезагрузки. Может какой то баг, не знаю.

Надо бы как то формализовать вывод. К счастью у sensors есть удобный режим вывода в json, и можно скрыть название адаптора. sensors -A -u -j выдаст длинный json. Вот мой, например.

Ну вот, с этим работать удобнее. Для передачи показаний дальше надо разобрать данные. Для разбора json прямо в консоли есть шикарнейшая утилита - jp. Если она не установлена - для ubuntu она есть в пакетах:

apt-get install jq

Определяем xpath нужного параметра. Можно глазами, можно с помощью например этого удобного онлайн-инструмента.

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

sensors -A -u -j | jq '.["coretemp-isa-0000"]["Core 0"].temp2_input'
sensors -A -u -j | jq '.["it8720-isa-0290"].fan1.fan1_input'
sensors -A -u -j | jq '.["it8720-isa-0290"].temp3.temp3_input'


Нагруженность системы

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

Утилизация памяти. Самый простой способ по моему - воспользоваться командой free. Чтобы не ломать глаза, есть параметр -m, выводящий все значения в мегабайтах.


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

free -m | grep "Mem" | awk ''


Соответственно в параметр grep отдаем название строки, а в параметр awk - номер столбца, в результате получаем готовую цифру. Дальше по аналогии можно получить остальные данные, а процент вычислить по формуле. В разделе передача данных в скрипте можно найти алгоритм расчета.

Свободное место на дисках получаем по аналогии, с помощью команды df. Нужные мне данные уже посчитаны в процентах, просто берем готовое, используя тот же подход, что и с памятью. Есть только одно отличие - нам нужна цифра, а тут получится строка. Для удаления символа процента последняя команда: df

df | grep "/dev/md127p1" | awk '' | sed 's/%$//'
df | grep "/dev/md126p1" | awk '' | sed 's/%$//'


Суммированную загрузку системы можно получить в файле /proc/loadavg. Надо понимать, что цифры там - показатель, измеренный в попугаях. Первые три строки означают среднее количество процессов или потоков, которые выполняются, находятся в очереди на выполнение или ждут завершения операций ввода/вывода за 1, 5 и 15 минут. То есть это не процент и не доля от целого. Просто если это значение представить в виде числа, то большое (больше единицы) число там это плохо, п'нятненько? Я буду брать за 15 минут:

cat /proc/loadavg | awk ''


Аптайм нам даст команда uptime:


Ну и наконец загрузку процессора возьмем у программы mpstat. Я использую именно эту программу, потому что она по умолчанию суммирует ядра, кроме того выдает информацию и тут же заканчивает свой процесс. Тут тоже потребуются арифметические вычисления, потому что все распространенные утилиты отдельно считают задачи пользователя и системы, но зато суммируют время простоя. Таким образом, если мы хотим получить просто цифру загруженности, то надо или из единицы вычесть простой, или сложить все направления. Если mpstat у вас не установлена, то это можно сделать командой apt install sysstat. Итак,

mpstat | grep all | awk ''


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

Дело в том, что му почти наверняка получим нецелое число, и в зависимости от текущей локали там может быть не запятая а точка. Да и вообще bash бывает плохо умеет работать в числами с точкой. Поэтому вычисление текущей загрузки передано программе bc

cpuidle=$(mpstat | grep all | awk '')
cpuload=$(echo "100-$cpuidle" | bc -l)
echo "Текущая загрузка процессора: $cpuload"

Показания состояния жестких дисков

Для получения температуры дисков воспользуемся утилитой hddtemp. Если ее нет, ставим:

apt-get install hddtemp

Работать вообще просто: для получения температуры ей указывается устройство, и с параметром -n не будет лишних данных:


Для получения данных со SMART воспользуемся smartmontools

apt-get install smartmontools

Для использования надо указать на какой диск смотреть, и ключ -a, иначе будет выведена просто короткая справка о диске.

smartctl -a /dev/sda

Утилита вываливает целую гору информации, несколько экранов. Не буду приводить тут скриншоты, слишком много. Из всей этой кучи надо выделить интересующие показатели. Я для себя выделил эти:

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

Reallocated_Sector_Ct — количество перераспределённых секторов. Большое значение говорит о большом количестве ошибок диска;

Seek_Error_Rate — количество ошибок позиционирования. Большое значение говорит о плохом состоянии диска;

Spin_Retry_Count — количество попыток повторной раскрутки. Большое значение говорит о плохом состоянии диска;

Reallocated_Event_Count — количество операций перераспределения секторов;

Offline_Uncorrectable — количество неисправных секторов. Большое значение говорит о повреждённой поверхности.

Чтобы их вытащить из ответа утилиты, можно воспользоваться удобной функцией - вывод значений в формате json. Для этого к строке запуска добавляем параметр -j, вот так:

smartctl -a -j /dev/sda

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

Получив xpath, выделяем конкретную цифру с помощью той же утилиты jq, вот так (в конце в комментарии имя параметра):

Кроме того, есть такой ответ на вопрос типа "ты нормально скажи - здоров ты или нет" - запустив утилиту с параметром -H, можно получить суммарный вывод о здоровье диска. У режима тоже есть параметр -j, выводящий структурированный json.


Также выделям его из json:

Не забываем о необходимости вовремя тестировать диск, само себя оно не протестирует (наверное)

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

smartctl -t short /dev/sda

быстрое тестирование, занимает около 2 минут

smartctl -t long /dev/sda

расширенный тест, занимает около 1 часа.

Если этот вариант не нравится, у программы есть режим демона, smartd, который сам будет запускать тестирование, и может даже слать отчеты. Отчетов нам не нужно, а вот автотестирование пригодится. Настройку smartd легко нагуглить.

Показания состояния RAID

На контролируемом сервере поднят просто raid на mdadm. На разделах дисков создано два массива, для системы и для /var. Рассматривается мониторинг именно такой конфигурации, для иной конфигурации на mdadm можно адаптировать, а про аппаратный raid ничего не знаю.

Самый простой способ узнавать что происходит, что я нашел - это брать уже готовые данные в виртуальной файловой системе sys. [1] [2]

Тут есть определённая проблема - я не нашел способа проверить работоспособность этого метода. Буду исходить из мысли что все хорошо.

Итак, получаем названия разделов cat /proc/mdstat

Вижу что-то такое:


Сначала надо вызвать проверку

echo 'check' >/sys/block/md126/md/sync_action
echo 'check' >/sys/block/md127/md/sync_action

А потом просто взять готовое

cat /sys/block/md126/md/mismatch_cnt
cat /sys/block/md127/md/mismatch_cnt

если команды возвращают 0, то все ок.

Команды запуска проверки запускаем из крона периодически, иначе данные будут неактуальны.

Сбор и передача данных

Если на сервере не установлен клиент mosquitto, то ставим его:

apt-get install mosquitto-clients

Создаем где-нибудь скрипты, куда сведем все команды сбора и публикации. Я разделил все операции на три группы - частые (показатели системы), средние (состяние raid и свободного места), и редкие (данные smart):

touch system.sh && touch drives.sh && touch smart.sh
chmod u+x system.sh && chmod u+x drives.sh && chmod u+x smart.sh

В созданные файлы пишем:

Запускаем, убеждаемся что в логах Mosquitto broker в Home Assistant светятся обращения


Если не светятся, то или неверно заданы параметры подключения, или брокер закрыт для обращения извне, или не знаю.

Настройка в Home Assistant

Ну, почти все. Осталось в конфиге Home Assistant добавить датчики.

Длинный кусок конфига

Перезагружаем, запускаем еще разок скрипты на сервере, чтобы данные опубликовались первый раз, и все! Для красоты можно создать карточку на дашборде. Смысла в ней особенно нет, какие то критические показатели можно вынести на главный дашборд, а остальные использовать только в автоматизациях. Но пусть будет:


Убедившись что все работает, добавляем скрипты в крон. Системные показатели я передаю раз в полчаса, состояние дисков раз в час, а состояние smart раз в сутки.

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

Также для многих будет не очевидна необходимость контролировать состояние сервера на умном доме - имея задачей только рассылку уведомлений проще делать это непосредственно на контролируемом сервере. Хотя некоторые данные хорошо бы хранить исторически, так что смысл все же есть. Кроме того, я интересно и с пользой провел воскресный вечер.

На скриншоте видно, что обсуждаемый сервер запланирован под nextcloud. Его внутренние показатели тоже можно прекрасно добавить в HA, для этого там есть чудесный api. А у HA есть встроенная интеграция.

Upd1: В комментариях посоветовали утилиту Glances, имеющую встроенную интеграцию с Home Assistant. Из плюсов - готовый работающий вариант. Из минусов - открытый веб-интерфейс на сервере, если это имеет для вас значение.

Умеет собирать значительную часть системной информации из этой статьи

For each detected disk (or mount point) the following sensors will be created:

disk_use_percent: The used disk space in percent.

disk_use: The used disk space.

disk_free: The free disk space.

memory_use_percent: The used memory in percent.

memory_use: The used memory.

memory_free: The free memory.

swap_use_percent: The used swap space in percent.

swap_use: The used swap space.

swap_free: The free swap space.

processor_load: The load.

process_running: The number of running processes.

process_total: The total number of processes.

process_thread: The number of threads.

process_sleeping: The number of sleeping processes.

cpu_use_percent: The used CPU in percent.

sensor_temp: A temperature sensor for each device that provides temperature (depends on platform).

docker_active: The count of active Docker containers.

docker_cpu_use: The total CPU usage in percent of Docker containers.

docker_memory_use: The total memory used by Docker containers.

Upd2: Если речь идет о сервере именно для Nextcloud, то действительно есть встроенная интеграция, которая умеет собирать много информации. Кроме данных о состоянии системы nextcloud, также немного системных данных, таких как объем занятой и всего памяти, свопа, статистическую загрузку из файла /proc/loadavg.

Upd3: Установка и использование Glances

Ну а теперь нужно подключить интеграцию - в HA добавляете новую интеграцию, ищете в списке Glances, в открывшемся окне вводите адрес сервера, порт (по умолчанию 61208), логин/пароль, и готово.


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

Лично мне не понравилось. Во первых - утилита сама по себе добавляет немалую загрузку системе. На двухядерном атоме, который является подопытным в этой статье, это до 20% само по себе. Во вторых - лишние зависимости.
Но, если питон используется для чего то еще, зависимости это не проблема, а достаточно мощный сервер такую нагрузку даже не заметит. Кроме того утилита кроссплатформенная, и тот же подход можно использовать для мониторинга и других систем.


Особенности инструмента Sysstat (системная статистика)

Инструмент Sysstat использует команду SAR для печати различных типов информации о системе. Здесь мы увидим краткое объяснение нескольких основных и наиболее часто используемых команд sysstat.

  • iostat: iostat или команда статистики ввода / вывода используется для печати загрузки ЦП.
  • mpstat: вы можете запустить команды mpstat, чтобы распечатать информацию о ядре процессора, номер потока и другую связанную статистику о системном процессоре.
  • pidstat: команда pidstat может печатать отдельные отчеты для RAM, процессора, CPU и других устройств ввода-вывода. Он может отображать отчеты о текущих процессах ядра Linux.
  • tapestat: команда tapestat используется для печати информации о времени загрузки и комбинированной информации о подключенных устройствах. Он также может отображать сетевую статистику.

Есть и другие команды системной статистики, которые вы можете запустить в своей оболочке, чтобы стать опытным пользователем Linux. Если вам интересен инструмент системной статистики, вы можете проверить эту ссылку.

Установите Sysstat в системе Linux

Инструмент системной статистики позволяет отслеживать использование ЦП, состояние ОЗУ, производительность SWAP и другие параметры системы. Для установки инструмента Sysstat не требуются какие-либо дополнительные приложения-зависимости, но убедитесь, что ваш системный репозиторий обновлен. В этом посте будет показано, как установить, настроить и начать работу с инструментом мониторинга Sysstat в системах Debian, Red Hat и Arch Linux.

1. Установите Sysstat в Ubuntu / Debian.

Если вы используете Ubuntu или другой пользователь Linux на базе Debian, вы можете установить инструмент Sysstat в свою систему через официальный репозиторий Linux. Выполните следующую команду aptitude в оболочке терминала с правами root, чтобы установить ее в вашей системе.

sudo apt update
sudo apt install sysstat


2. Установите Sysstat в Fedora и Red Hat Linux.

Современная рабочая станция Fedora поддерживает команды DNF и YUM; здесь мы будем использовать команду YUM для установки инструмента мониторинга Sysstat в нашей системе Linux на базе Red Hat. Вы можете запустить следующую команду YUM в оболочке терминала, чтобы установить инструмент Sysstat в вашей системе Red Hat.

sudo yum установить sysstat


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

yum install sysstat -y -q && yum список установленных sysstat -q

3. Установите Sysstat в Arch Linux.

Установка инструмента системной статистики в системе Linux на базе Arch аналогична его установке в других системах Linux. Вы можете установить инструмент Sysstat в вашей системе Arch Linux с помощью команды Pacman. Выполните следующую команду Pacman, указанную ниже, в вашей оболочке, чтобы установить инструмент системной статистики.

sudo pacman -Rs sysstat

Я протестировал указанную выше команду на своем Manjaro KDE Linux; если у вас возникли проблемы с установкой через интерфейс командной строки, вы можете получить скомпилированный пакет Sysstat для вашей системы на основе Arch. Вы можете щелкнуть здесь, чтобы загрузить файл Zstandard Sysstat и установить его с помощью инструмента установки пакетов по умолчанию.


Запустите Sysstat Tool в Linux

После успешной установки инструмента системной статистики в вашей системе Linux теперь вы можете использовать команды Sar (System Activity Reporter) в оболочке терминала для мониторинга вашей системы. Здесь мы увидим несколько примеров команды Sar, чтобы узнать, как с ней начать.

Я должен отметить, что все команды, которые я покажу в этой части, выполняются в системах Debian, Red Hat и Arch Linux.

Шаг 1. Включите и настройте Sysstat

Вначале выполните следующие команды в своей оболочке, чтобы запустить и включить инструмент Sysstat на вашем компьютере. Не забывайте запускать команды от имени пользователя root; для команд управления системой требуются привилегии root.

sudo systemctl start sysstat
sudo systemctl enable sysstat

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

судо нано /etc/cron.d/sysstat


Шаг 2. Тестирование команд Sar в Linux

После установки и настройки инструмента системной статистики Sysstat в Linux пришло время запустить несколько команд в оболочке терминала, чтобы проверить, правильно ли он работает. Во-первых, вы можете запустить команду быстрой проверки версии, чтобы узнать, работает ли инструмент в вашей системе или нет.


Следующая команда iostat отобразит статистику ЦП, количество ядер в ЦП, версию ядра, устройства и скорость чтения-записи данных в вашей системе.


Следующая команда сгенерирует представление состояния вашего процессора в командной строке. Здесь синтаксис u 2 30 используется для указания промежутка времени между двумя данными. Вы можете изменить разницу во времени, отредактировав продолжительность.


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

Заключительные слова

В кратком посте я описал методы установки инструмента системного мониторинга Sysstat в системе Linux. Я также описал, как настроить и начать работу с командами Sar в оболочке терминала. Если вы по-прежнему обнаружите какие-либо проблемы с его установкой, попробуйте установить его из исходного кода в вашей системе Linux.

Пожалуйста, поделитесь этим постом со своими друзьями и сообществом Linux, если вы сочтете его полезным. Вы также можете написать свое мнение об этом посте в разделе комментариев.

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

  1. Узкие места общего характера
  2. Узкие места, связанные с диском (дисковой памятью)
  3. Узкие места, связанные с процессором и оперативной памятью
  4. Узкие места, связанные с сетью

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


Рис.1: Linux команда - top

Наиболее часто используемые горячие клавиши

При работе команды top можно воспользоваться следующими полезными горячими клавишами:

Команда vmstat выдает информационный отчет о активности процессов, памяти, свопинга, поблочного ввода/вывода, прерываний и процессора.

Пример вывода данных:

Выдача статистики использования памяти

Получение данных об активности / неактивности страниц памяти

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

Пример вывода данных:

Пример вывода данных:

Команда ps подобна команде top, но выдает больше информации.

Показать больше данных

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

Показать потоки (LWP и NLWP)

Показать потоки после процессов

Выдать список всех процессов на сервере

Выдать дерево процессов

Выдать информацию о параметрах безопасности

Показать каждый процесс для пользователя Vivek

Настроить выдачу данных в формате, определенном пользователем

Показать имя для PID 55977

Выдать 10 процессов, потребляющих наибольшее количество памяти

Выдать 10 процессов, потребляющих наибольший ресурс процессора

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

Пример вывода данных:

Команда iostat выдает статистику использования процессора, а также статистику ввода/вывода для устройств, разделов и сетевых файловых систем (NFS).

Пример вывода данных:

Команда sar используется для сбора информации о системной активности и выдачи ее в виде отчета или ее сохранения. Чтобы увидеть значение считчика сетевой активности, введите:

Для того, чтобы увидеть значения счетчиков сетевой активности, начиная с 24-го:

С помощью команды sar Вы можете также выдавать данные в режиме реального времени:

Пример вывода данных:

Команда mpstat выводит данные об активности каждого имеющегося в наличие процессора, процессор 0 будет первым. Команда mpstat -P ALL выводит данные о среднем использовании ресурсов для каждого из процессоров:

Пример вывода данных:

Команда pmap выдает данные о распределении памяти между процессами. Использование этой команды позволит найти причину узких мест, связанных с использованием памяти.

Пример вывода данных:

Последняя строка очень важна:

  • mapped: 933712K общее количество памяти, отведенного под файлы
  • writeable/private: 4304K общее количество приватного адресного пространства
  • shared: 768000K общее количество адресного пространства, которое данный процесс использует совместно другими процессами.

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

Команда iptraf запускает цветной интерактивный монитор, следящий за сетевыми IP. Этот монитор сетевых IP базируется на команде ncurses, которая выдает различную сетевую статистику, в том числе информацию о TCP, ведет подсчет UDP, выдает сведения о ICMP и OSPF, информацию о нагрузке на Ethernet, статистику по узлам сети, данные об ошибках контрольных сумм пакетов IP и многое другое. Монитор предоставляет в удобном для чтения виде следующие данные:

  • Статистику сетевого трафика по TCP подключениям
  • Статистику IP трафика по сетевым интерфейсам
  • Статистику сетевого трафика по протоколам
  • Статистику сетевого трафика по портам TCP/UDP и по размерам пакетов
  • Статистику сетевого трафика по адресам протоколов второго уровня

Рис.02; Общая статистика по интерфейсам: статистика трафика IP по сетевым интерфейсам



Рис.03: Статистика сетевого трафика по TCP подключениям

Для того, чтобы показать все сессии FTP для адреса 202.54.1.5, введите следующее:

Введите следующую команду и используйте для просмотра подробностей программу анализа wireshark :

Трассировка системных вызовов и сигналов. Это средство полезно для отладки веб сервера и решения других серверных проблем. О том, как использовать это средство и для чего нужна трассировка процессов, смотрите по ссылке strace .

В директории /proc имеется подробная информация о различных устройствах и ядре Linux. Подробности смотрите в документации Linux kernel /proc . Самые общие примеры:


Рис.05: KDE System Guard (рисунок взят из Википедии)

Подробности использования смотрите по следующей ссылке: Руководство по KSysguard .

  • Отображается различная основная информация об аппаратном и программном обеспечении компьютера
  • Версия ядра Linux
  • Версия GNOME
  • Аппаратные средства
  • Установленная оперативная память
  • Процессоры и их скорость
  • Статус системы
  • Имеющееся в наличии дисковое пространство
  • Процессы
  • Память и пространство своппинга
  • Использование сети
  • Файловые системы
  • Список всех смонтированных файловых систем вместе с основной информацией о каждой из них

Рис.6: Приложение Gnome System Monitor

Бонус: Дополнительные инструментальные средства

И еще несколько инструментальных средств:

Не упустил ли я чего-либо? Пожалуйста, добавьте в комментариях свои любимые средства мониторинга системы.

Комментарии

Вы можете также прочитать другие статьи о средствах мониторинга системы в Линукс в разделе Разные административные задачи Библиотеки нашего сайта.

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

  1. Sysstat - инструмент мониторинга производительности и использования для Linux


Сегодня мы собираемся поработать с некоторыми интересными практическими примерами утилит mpstat, pidstat, iostat и sar, которые могут помочь нам выявить проблемы. У нас есть разные варианты использования этих утилит, я имею в виду, что вы можете запускать команды вручную с различными параметрами для разных видов работы или вы можете создавать свои собственные сценарии в соответствии с вашими требованиями. Вы знаете, что системные администраторы всегда немного ленивы и всегда пытались найти простой способ сделать что-то с минимальными усилиями.

mpstat - Статистика процессоров

1. Использование команды mpstat без каких-либо параметров отобразит средние глобальные активности по всем процессорам.

2. Использование mpstat с опциями «-P» (указать номер процессора) и «ВСЕ» отобразит статистику по всем процессорам один за другим, начиная с 0. 0 будет первым.

3. Чтобы отобразить статистику для N числа итераций через интервал в n секунд со средним значением для каждого процессора, используйте следующую команду.

4. Опция «I» напечатает общее количество статистических данных о прерываниях для каждого процессора.

5. Получите всю вышеуказанную информацию одной командой, т.е. эквивалентной «-u -I ALL -p ALL».

pidstat - Статистика по процессам и потокам ядра

Это используется для мониторинга процессов и текущих потоков, которыми управляет ядро. pidstat также может проверять статус дочерних процессов и потоков.

6. Использование команды pidstat без аргументов отобразит все активные задачи.

7. Чтобы распечатать все активные и неактивные задачи, используйте опцию «-p» (процессы).

8. Используя команду pidstat с опцией «-d 2», мы можем получить статистику ввода-вывода, а 2 - интервал в секундах для получения обновленной статистики. Этот вариант может быть удобен в ситуации, когда ваша система подвергается интенсивному вводу-выводу, и вы хотите получить подсказки о процессах, потребляющих много ресурсов.

9. Чтобы узнать статистику процессора вместе со всеми потоками об идентификаторе процесса 4164 с интервалом 2 секунды 3 раза, используйте следующую команду с опцией «-t» (отображать статистику выбранного процесса).

10. Используйте параметр «-rh», чтобы узнать об использовании памяти процессами, которые часто меняют свое использование с интервалом в 2 секунды.

11. Чтобы распечатать весь процесс, содержащий строку «VB», используйте опцию «-t», чтобы также увидеть потоки.

12. Чтобы получить приоритет в реальном времени и информацию о расписании, используйте опцию «-R».

Здесь я не буду рассказывать об утилите Iostat, поскольку мы уже рассмотрели ее. Пожалуйста, посмотрите «Мониторинг производительности Linux с помощью Vmstat и Iostat», чтобы получить все подробности о iostat.

sar - Репортер системной активности

Используя команду «sar», мы можем получить отчеты о производительности всей системы. Это может помочь нам найти узкое место в системе и помочь найти решения этих досадных проблем с производительностью.

Ядро Linux поддерживает внутренний счетчик, который отслеживает все запросы, время их выполнения, количество блоков ввода-вывода и т. Д. На основе всей этой информации sar вычисляет частоту и соотношение этих запросов, чтобы узнать об узких местах.

Главное в sar то, что он сообщает обо всех действиях за определенный период времени. Итак, убедитесь, что sar собирает данные в подходящее время (не в обеденное время или в выходные. :)

13. Ниже приводится основная команда для вызова sar. Он создаст один файл с именем «sarfile» в вашем текущем каталоге. Параметр «-u» предназначен для получения сведений о ЦП и собирает 5 отчетов с интервалом в 2 секунды.

14. В приведенном выше примере мы вызвали sar в интерактивном режиме. У нас также есть возможность вызывать его в неинтерактивном режиме через cron, используя сценарии/usr/local/lib/sa1 и/usr/local/lib/sa2 (если вы использовали/usr/local в качестве префикса во время установки).

  1. /usr/local/lib/sa1 - это сценарий оболочки, который мы можем использовать для планирования cron, который будет создавать ежедневный двоичный файл журнала.
  2. /usr/local/lib/sa2 - это сценарий оболочки, который преобразует двоичный файл журнала в удобочитаемую форму.

Используйте следующие записи Cron, чтобы сделать это не интерактивным:

На внутреннем уровне скрипт sa1 вызовет утилиту sadc (сборщик данных системной активности) для выборки данных с определенным интервалом. sa2 вызовет sar для преобразования двоичного файла журнала в удобочитаемую форму.

15. Проверьте длину очереди выполнения, общее количество процессов и среднюю загрузку с помощью опции «-q».

16. Проверьте статистику смонтированных файловых систем с помощью «-F».

17. Просматривайте сетевую статистику с помощью «-n DEV».

18. Просматривайте статистику блочного устройства, такую u200bu200bкак iostat, используя «-d».

19. Для печати статистики памяти используйте опцию «-r».

20. Используя «safd -d», мы можем извлекать данные в формате, который можно обрабатывать с помощью баз данных.

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

На этом пока все, вы можете ссылаться на страницы руководства для получения дополнительной информации о каждой опции и не забудьте рассказать о статье с вашими ценными комментариями.

Читайте также: