15 March 2012

Удобство наблюдения, atop

Configuring LinuxSystem administration
Добрый день, сообщество,
На Хабре уже говорилось о всевозможных TOP- овых утилитах, на этот раз, я хочу попробовать рассмотреть поближе утилиту atop. Постараюсь немного сравнить ее с существующими утилитами наблюдения за производительностью и научиться читать выводы данной команды.
У системных администраторов задача наблюдения за производительностью встает чуть ли не каждый день, и конечно же хотелось бы все это сделать в рамках одной утилиты и без особых танцев с бубном, как мне кажется удобнее всего в таком случае использовать команду atop.

Устроим краткий обзор по функционал самых популярных утилит просмотра производительности. В Linux присутствует богатый набор утилит для наблюдения за системой, но у каждой из них есть определенные ограничения и свойственные им недоработки. Попробуем описать основные параметры, которые администратор хочет считывать со своей системы:
  • утилита должна обязательно показывать ситуацию «он-лайн», но так как проблемы редко случаются на момент наблюдения, в нее должен быть включен функционал просмотра состояния за определенный прошедший период.
  • обязательно должна демонстрировать показатели 4 основных ресурсов: CPU, memory, disk I/O и сеть.
  • так как загрузка каждого из четырех ресурсов это определенно заслуга того или иного процесса, то утилита должна показывать зависимость загрузки ресурса от процесса.
  • должна уметь получать снимки (snapshot) системы, с определенным интервалом.

Если мы хорошенько всмотримся в данные требования, и попробуем наложить их на всем известные системы мониторинга, увидим следующее:
sar — показывает более чем достаточную информацию о необходимых нам четырех ресурсах системы, умеет «возвращаться в прошлое», но не умеет фокусироваться на процессах.
vmstat и iostat — могут мониторить CPU, память и использование диска только на системном уровне, но не на уровне процесса, также не умеют «возвращаться в прошлое».
top — как безусловно самая популярная утилита, мониторит CPU и память на уровне системы и на уровне процессов. Но как и многие другие показывает только текущую ситуацию, самым главным минусом на мой взгляд это то, что ее показания не всегда точны, используя утилиту top мы можем столкнуться с такой проблемой: система будет указывать нам что занять 90% CPU, а на самом деле сумма загруженности CPU на уровне процессов будет 40% (разница в 50% процентов указывает, что система показывают нам информацию между предыдущим и текущим снимком, хотя система в принципе уже свободна). Т.е достоверность и информативность немного хромает
Ниже приведена таблица сравнения этих систем по характеристикам.

image

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

image

Как и в стандартном выводе top экран разделен на две половины, в первой из них указаны данные о системе, а во второй данные по процессам.
В верхней половине видна не только информация по процессору и по памяти как в стандартном выводе top, а еще информация касательно сети и дисков. Если мы обратим внимание на 2 строку данного вывода, просуммировав значения (3+2+0+195+0) мы получим 200% — это означает, что система является 2 процессорной, и каждый из них имеет по 100%, ниже дается деление по каждому процессору, на сколько тот или иной занят. Ниже после этих строк указана оперативная память, информация по дискам, и сетевым интерфейсам.
Более подробное описание каждого столбца можно найти в man странице к данной утилите, кстати на редкость подробное описание.
Естественно мы можем менять ее вид так как нам захочется используя горячие клавиши, ниже я указал наиболее интересные из них,
m — выстроит процессы по занятой памяти
d — построит процессы по использованию диска
n — выстроит процессы по использованию сети (доступно только с установленным патчем)
v — покажет более подробную информацию о процессах (пользователя, дату и время начала процесса)
u — выстроит таблицу по самым прожорливым пользователям
Использование shift+(d,m,n) выстроит текущий список по выше указанным параметрам.
i — изменение времени проверки, по умолчанию 10 секунд.
g — вернет все в дефолтный вывод.

Теперь давайте посмотрим как все же пользоваться функцией «возврата в прошлое», у утилиты atop при стандартной установке есть такая полезная «фича», которая включает ночное логирование производительности системы. Утилита по дефолту снимает показания каждые 10 минут, и сбрасывает их в лог /var/log/atop-YYYYMMDD. У меня по умолчанию это дело отключено, не такой важный сервер просто:

[root@OracleLinux ~]# chkconfig --list | grep atop
atop           	0:выкл	1:выкл	2:выкл	3:выкл	4:выкл	5:выкл	6:выкл


В дальнейшем для анализа или просмотра лога можно использовать сам atop с ключом -r, или же если Вам нравится отчеты типа sar, можно воспользоваться утилитой atopsar. Кстати не мало важно уточнить, что сбор данных осуществляется в бинарном формате.
Таким образом мы можем сказать, что на сегодняшний момент лучшей утилиты, чем atop? которая смогла объединить в себе практически весь необходимый функционал для системного администратора нет. Ну по крайней мере это мое личное мнение.
Опровержения в комментариях приветствуются!
Tags:atoplinuxperformancesystem
Hubs: Configuring Linux System administration
+39
69.7k 239
Comments 18