Простой и удобный инструмент мониторинга производительности - nmon

  • Автор:

linux-performance-monitor-nmon-000.pngЛюбой системный администратор знает, что инструментов для мониторинга производительности много не бывает, особенно таких, которые позволяют одновременно контролировать сразу множество параметров, давая возможность оценить их взаимосвязь в реальном времени. Одной из таких утилит является nmon, пришедшая в мир Linux из настоящих UNIX-систем, а именно IBM AIX. Несмотря на свой солидный, по меркам IT, возраст она не потеряла актуальности и будет полезна для первоначальной диагностики проблем с производительностью для любого Linux администратора, как начинающего, так и опытного.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

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

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

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

nmon (Nigel's Monitor) - назван так по имени автора Найджела Гриффитса (Nigel Griffiths), первоначально был написан для AIX, позже портирован на Linux и долгое время оставался внутренним проектом IBM, но в 2009 году его код был открыт и началось развитие утилиты как проекта с открытым исходным кодом. Сегодня nmon есть в репозиториях всех основных дистрибутивов.

Для установки утилиты в Debian / Ubuntu и прочих, основанных на них системах, выполните:

apt install nmon

Для запуска просто введите в терминале:

nmon

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

linux-performance-monitor-nmon-001.pngРаботать с утилитой очень просто, например. чтобы получить данные о процессоре - нажмите c, памяти - m, дисковом вводе-выводе - d:

linux-performance-monitor-nmon-002.pngПовторное нажатие на клавишу скрывает вызываемый ей модуль. Несмотря на текстовый режим работы утилиты ее вывод достаточно информативен, мы можем в режиме реального времени наблюдать сразу несколько параметров и быстро находить взаимосвязи между ними. Для CPU также возможно построение долгосрочного графика, его можно вызвать клавишей l:

linux-performance-monitor-nmon-003.pngКартинки красивые, но давайте попробуем немного разобраться в том, что они нам показывают. Еще скриншотом выше опытного администратора должны были насторожить синие квадратики на индикаторе загрузки процессора, которые показывают время ожидания (Wait), график загрузки процессора ниже это только подтверждает - процессор достаточно много времени находится в режиме ожидания.

Что это значит? Процессор выделяет процессу некоторые ресурсы, но процесс не может ими воспользоваться, так как чего-то ожидает. В результате процессор не выполняет полезной работы, но его ресурсы также недоступны другим процессам. При большом количестве таких процессов может получиться так, что процессор ничего не делает, но формально загружен на 100%.

Что могут ожидать процессы? Чаще всего это сеть или дисковый ввод/вывод. Давайте соберем новый набор модулей: процессор, диски и топ процессов - клавиша t:

linux-performance-monitor-nmon-004.pngПосле непродолжительного наблюдения мы делаем однозначный вывод, что ожидание процессора четко коррелируется с записью на диски, причем в топе по CPU находятся процессы сервера 1С. Что может ждать сервер 1С? Продолжим разбираться. У модуля Top Processes есть свои настройки, которые указаны в заголовке. Доступны режимы топа по нагрузке на CPU, потребляемой памяти и вводу-выводу, для их переключения предназначены кнопки 3 - 4 - 5, текущий режим отображается в строке mode=3 - т.е. топ по нагрузке на CPU.

Давайте посмотрим кто же больше всего пишет на диск, нажмем клавишу 5 и получим совсем другую картину:

linux-performance-monitor-nmon-005.pngТеперь становится понятно, кто становится причиной ожидания - это PostgreSQL, который что-то активно пишет на диск. В целом - ситуация более-менее ясна. С помощью nmon бы быстро нашли проблемное место и теперь в дело вступают профильные специалисты.

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

linux-performance-monitor-nmon-006.pngЕсли же вы забыли горячие клавиши для управления утилитой, то всегда можно нажать повторно h и вывести на экран краткую справку, не прерывая работы:

linux-performance-monitor-nmon-007.png

Надеемся, что представленная информация будет вам полезна и в арсеналы администратора добавится еще одна отличная утилита.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments