среда, 30 января 2013 г.

NMON - полезная утилита системного мониторинга

Об этой утилите, я узнал совершенно случайно, по совету друга, который поднимал сервер после «падения». Бегло просмотрев документацию и возможности этой утилиты, я быстро установил ее на компьютер и попробовал в действии. Понравилось. Так как в интернете на русском языке толком нет документации по утилите, я решил написать заметку по базовым командам nmon, которые могут мне пригодиться в будущем (да и не только мне).
nmon — это утилита измерения и настройки производительности для системных администраторов. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах (версия Linux и процессоры). Существует также версия nmon для AIX.

Кроме того, он не сильно загружает процессор – обычно примерно на 2%. На новых компьютерах загрузка процессора может составлять менее 1%.
Данные выводятся на экран и обновляются каждые 2 секунды. Длину интервала между обновлениями можно изменить в большую или меньшую сторону. Можно также сохранять данные в текстовый файл (.csv) для последующего анализа и создания графиков.

Установка (утилита доступна в стандартных репозиториях ubuntu и debian):
# apt-get install nmon

Запуск nmon со стандартными параметрами:
$ nmon

Выйти из программы можно нажав клавишу q.

Примерно вот так выглядит окно входа в программу.

Я намеренно выделил цветами основные блоки.
Красный блок:
имя программы и ее версия - инструкция для вызова помощи - имя компьютера - частота обновления экрана - текущее время
Синий блок:
заставка nmon, выполненная с помощью графики ASCII
Зеленый блок:
краткое руководство по параметрам интерактивного режима программы

Основные параметры запуска программы с помощью командной строки:
$ nmon [-h] [-s <seconds>] [-c <count>] [-f -d <disks> -t -r <name>] [-x]
-h полное руководство пользования

В программе имеется два режима: режим сбора данных и интерактивный режим.

Режим сбора данных (-f):
-f формат вывода таблицы [по умолчанию -s300 -c288]
-s <seconds> частота обновления экрана [по умолчанию 2 сек]
-c <number> число обновлений [по умолчанию 1 млн]
-d <disks> изменение отображения количества дисков [по умолчанию 256]
-t таблица включает в себя основные процессы;
-x планирование мощности (15 мин на 1 день = -fdt -s 900 -c 96)

Интерактивный режим:
-s <seconds> частота обновления экрана [по умолчанию 2 сек]
-c <number> число обновлений [по умолчанию 1 млн]
-g <filename> пользовательские группы дисков [для показа нажать g]
         - file = в каждой строке: group_name <список дисков> разделены пробелом
         - like: база данных sdb sdc sdd sde
         - upto (до)32 групп дисков, может использоваться
-b черный и белый [по умолчанию цветной]

Пример: 
$ nmon -s 1 -c 100 -b 

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

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

Некоторые параметры системы нельзя просмотреть от имени простого пользователя, тогда нужно запускать команду nmon с правами суперпользователя:
$ sudo nmon 

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

m = Memory
Показывает общее количество оперативной памяти, занятой в мегабайтах и процентах, файла подкачки, кэшированной памяти, буфера и другу информацию о состоянии памяти. 

d = Disks
Показывает информацию о состоянии дисков и их разделов (информация файла /proc/diskstats). Информация представлена в виде таблицы и графика, в котором показаны имя физического диска и томов, количество занятой памяти, текущее чтение и запись с раздела диска (в килобайтах), для каждого раздела существует график со шкалой от 0 до 100 процентов, для визуальной наглядности загруженности дисков. Также присутствует информация о суммарной скорости чтения и записи. 

r = Resources
Показывает информацию о версии и типе ядра, процессоре, архитектуре компьютера, операционной системе и ее версии.

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

j = Filesystems
Показывает информацию о файловой системе в виде таблицы, имя раздела (путь к папке), полный размер (MB), свободное и занятое место (MB), тип файловой системы и точка монтирования.

n = Network
Показывает информацию о сетевых интерфейсах, количестве и размеру отправленных/полученных пакетов, также уведомляет об сетевых ошибках в виде аккуратной таблицы.

N = NFS
Показывает информацию о сетевой файловой системе (NetworkFileSystem), нагруженности сети, клиентом и сервером, в моем случае NFS версии 2 и 3. 

t = Top processes
Показывает список процессов в виде таблицы (очень похоже на команду top), столбцы: PID процесса, нагрузка на процессор, количество занятой оперативной памяти и т. д. 

V = Virtual memory
Показывает информацию о виртуально памяти, в частности о разделе подкачки. 

v = Verbose hints
Показывает информацию о ресурсах в плане безопасности, степень предупреждения и опасности (в процентах).

l = CPU long-term
Показывает наглядный график нагруженности процессора.

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

Официальный сайт: nmon.sourceforge.net/pmwiki.php?n=Main.HomePage
Документация (англ.): nmon.sourceforge.net/pmwiki.php?n=Site.Documentation

Комментариев нет: