Мониторим линукс-машину

Если вы еще не умеете полноценно мониторить свой компьютер под Linux'ом, то утилита nmon - как раз то, что вам нужно. А эта небольшая статья - отличный способ разобраться в том, как она работает.

Любят линуксоиды экспериментировать: то рабочий стол облегчают, то лишних демонов изгоняют, то машину умощняют, то ядро пересобирают. Это не всепокорный "Майкрософту" контингент! Однако оценкой собственного труда чаще всего является фраза "Теперь летает". А так ли?

В Линуксе существует очень много разнообразных средств для мониторинга системы. Если надо проверить расход памяти или нагрузку на ядра процессора, то запускают команду top. Открытые порты проверяют командой netstat. Часто пользуются такими решениями, как команда free. Можно назвать несколько десятков команд, короче, мозги пользователя постоянно должны быть в работе. А теперь представьте, что всё это возможно проделать одной единственной командой! Более того, этой командой вы можете исследовать практически все параметры машины.

Таким решением является утилита nmon, которая имеется во многих репозиториях, в т.ч. и для Ubuntu. Самую свежую версию nmon можно скачать с nmon.sourceforge.net, исходники уже более года доступны по лицензии GPL. Утилита была разработана одним из сотрудников знаменитой IBM для нужд исследования функционирования ОС AIX. После установки (в Ubuntu командой sudo apt-get install nmon) утилита запускается из терминала командой nmon.

Рис. 1
 

При этом в терминал выводится псевдографика (рис. 1) и становятся доступными следующие однобуквенные команды:

h - помощь,

r - общая информация о системе,

с - текущие нагрузки на ядра процессора,

l - усреднённые нагрузки на ядра процессора,

m - статистика использования памяти,

k - общесистемные счётчики ядра ОС,

n - статистика использования сетевых ресурсов,

N - статистика использования файловых систем,

d - текущий обмен через ввод-вывод,

D - статистика использования ввода-вывода,

o - карта производительности устройств ввода-вывода,

p - статистика использования разделов HDD.

Команды b и "точка" переключают утилиту nmon в чёрно-белый минималистский режим. Командой q утилита закрывается. Можно подавать несколько команд последовательно, при этом каждая из них открывает в терминале собственное псевдографическое изображение (рис. 2).

Рис. 2

Частоту обновления информации можно увеличивать или уменьшать, нажимая на клавиатуре "плюс" или "минус". Несмотря на простоту и чрезвычайно малый расход ресурсов, утилита nmon очень информативна; по сравнению с ней conky, популярная среди пользователей различных сборок Линукса, выглядит неуклюжим декором рабочего стола.

Однако для того, чтобы сравнить производительность компьютера до и после апгрейда и/или мероприятий по оптимизации ОС, простых визуальных наблюдений за генерируемыми утилитой картинками недостаточно. Поэтому утилита nmon дополнительно снабжена возможностью записи собираемых сведений в файл. Для того чтобы сведения писались в файл, утилиту нужно запускать с параметрами, например:

nmon -t -f -s2 -c 60

Здесь -t означает, что будет собираться информация о загрузке ядер, -f указывает, что информация будет записываться в файл, -s2 - информация будет собираться каждые 2 секунды, -с 60 - будет выполнено 60 актов сбора данных (подробнее о параметрах утилиты см. man nmon). После запуска nmon с параметрами утилита работает в фоновом режиме, как служба. В результате работы утилиты в текущей директории (обычно это домашний директорий) создаётся файл с именем вроде mike_110430_2039.nmon, где mike - имя пользователя, 110430 - 30 апреля 2011 года, 2039 - 20 часов 39 минут, время окончания записи в файл, .nmon - расширение файла. Файл текстовый, для обработки его нужно сначала преобразовать в так называемый CSV-файл; это файл, в котором данные разделяются запятыми. Для преобразования можно и полезно использовать команду сортировки, например:

sort mike_110430_2039.nmon > 123.csv

Для обработки CSV-файла, по мнению автора, лучше всего подходит хорошо известный табличный процессор Gnumeric, который есть в репозиториях. Запускаем Gnumeric и открываем свежеиспечённый CSV-файл. Но не торопитесь строить диаграммы. Данные в ячейках таблицы текстовые, к тому же десятичные дроби имеют разделителями точку, а не запятую. К счастью, Gnumeric позволяет легко преобразовать эту некрасивость в удобоваримый европейский стандарт путём массового умножения выделенных текстовых чисел на единицу. Кстати, LibreOffice Calc такой трюк не позволяет проделать (Excel позволяет, отмечу справедливости ради). Далее диаграммы строятся практически так же, как и в Excel под ОС Windows. Получится как на рис. 3.

Рис. 3

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

Не забывайте, что однажды запущенная с параметрами утилита nmon продолжает работать и после того, как запишет лог-файл. Убейте её:

killall nmon

Интересных исследований и успешного вам апгрейда!

Михаил ГУРЧИК,
gor-mike@tut.by

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

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