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

    Добрый день, сообщество,
    На Хабре уже говорилось о всевозможных 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? которая смогла объединить в себе практически весь необходимый функционал для системного администратора нет. Ну по крайней мере это мое личное мнение.
    Опровержения в комментариях приветствуются!
    Поделиться публикацией

    Комментарии 18

      +7
      Пользуюсь atop и htop сразу на пару.
      Чтобы более удобно все видеть, я бы порекомендовал запускать как: atop 2
        +2
        Аналогично, еще iftop бывает полезен — в реальном времени позволяет мониторить направление соединений и интенсивность трафика.

        Эти три утилиты — большего и не нужно.
        +13
        Вот тут был более полный обзор TOP'ов.
          0
          решил попробовать на убунте, в списке процессов только сам atop и иногда появляются php5-fpm или mysqld. так и должно быть? причём в запуске атопа список полный, потом скукоживается

            +1
            Это по высоте все процессы не влезают в область экрана. atop их ротирует.
              0
              Список полный, потому что это информация взятая с момента старта системы, и внутри него содержатся показатели с момента старта системы, а список скукоживается скорее всего потому что у Вас не так загружена система, вернее совсем не загружена, если вы делали на десктопе. Попробуйте выполнить там где побольше активных процессов, или напрягите Вашу систему чем-нибудь, архивацией чего-нибудь например.
                0
                не может вообще один процесс atop'a быть ):
                скорей всего, как написали выше, atop выводит последнюю страницу списка. как-то так
              +1
              А проблему с работой atop под VZ решили как???
                0
                К сожалению или к счастью, но под VZ потестить не удалось, так как негде было. Опишите свой случай, давайте добавим сноску к статье.
                  0
                  Вы OpenVZ имеете ввиду? Под Xen и KVM точно работает.
                    0
                    Именно его…
                    Столкнулся, когда понабрал впс'ок…
                  +1
                  FreeBSD have no support for per-process network stat; request ignored!

                  > n — выстроит процессы по использованию сети (доступно только с установленным патчем)
                  скорей патч — это для GNU/Linux only
                    0
                    По свойству своей работы редко сталкиваюсь с Фряхой, поэтому тоже не пробовал, не очень популярна она у нас в регионе. Может быть Вам попробовать использовать вот этот порт:



                    И судя по главной странице проекта, видимо патч писан действительно под Linux kernel.
                      0
                      прошу прощения, ссылка отказалась вставляться…

                      sourceforge.net/p/atopfreebsd/home/Home/
                        0
                        порт был портирован полтора года назад одним украинцем (Alex Samorukov <samm-at-os2.kiev.ua>), с спецификой БиэЗДи

                        # uname -a
                        FreeBSD stats 9.0-RELEASE FreeBSD 9.0-RELEASE #2: Wed Mar 14 12:51:18 EET 2012 sc@stats:/usr/obj/usr/src/sys/MYKERN amd64


                        думал пост будет о детальном анализе инструмента
                          +1
                          Было бы что анализировать. Все топы достаточно просты (по крайней мере в использовании). Основные отличия автор указал.
                            +1
                            Сам достаточно недавно стал пользоваться atop -ом, статью можно будет развернуть дальше, например чем удобнее парсить логи, как их разбирать и анализировать. Но на это надо время, а моя работа все больше на «солярку» завязана, а там сами понимаете…
                              0
                              ну методы можно изложить, специфику каждый будет доделовать

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

                  Самое читаемое