Меню Рубрики

Atop linux синтаксис описание

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

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

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

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

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

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

Как и в стандартном выводе 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. У меня по умолчанию это дело отключено, не такой важный сервер просто:

Читайте также:  Internet explorer for linux

В дальнейшем для анализа или просмотра лога можно использовать сам atop с ключом -r, или же если Вам нравится отчеты типа sar, можно воспользоваться утилитой atopsar. Кстати не мало важно уточнить, что сбор данных осуществляется в бинарном формате.
Таким образом мы можем сказать, что на сегодняшний момент лучшей утилиты, чем atop? которая смогла объединить в себе практически весь необходимый функционал для системного администратора нет. Ну по крайней мере это мое личное мнение.
Опровержения в комментариях приветствуются!

Источник

Аникин

Самой удобной утилитой мониторинга нагрузки на сервере, на мой взгляд, является atop. Огромным плюсом данной утилиты является постоянное ведение логов нагрузки на сервер, это удобно т.к проблемы обычно происходят когда мы не следим за сервером прямо сейчас. А с atop можно отмотать «время назад» и посмотреть нагрузку на сервер в момент проблемы. Данная утилита есть во всех дистрибутивах линукс, также она присутствует во FreeBSD.
Рассмотрим установку утилиты для Ubuntu/Debian, Cenos и FreeBSD.

FreeBSD:
Определяем местонахождение порта:

Переходим в каталог

И устанавливаем порт

После установки мы можем запустить утилиту:

После запуска мы увидим окно типа такого:

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

Снизу мы видим процессы с PID’ами, пользователями которым они принадлежат и данными нагрузки которые они создают. Если на какую-либо подсистему сервера идет повышенная нагрузка и нам нужно узнать какой процесс её создает, то мы можем сортировать эти процессы по нагрузке на определенный узел нажатием определенных клавиш.

Теперь разберёмся как смотреть логи atop. Тут все достаточно просто. Для просмотра лога за текущий день достаточно выполнить

Мы увидим обычное окно atop, как и при просмотре в реальном времени, только по состоянию на 00 часов 00 минут текущего дня. Время можно увидеть в верхней строке. Переместится вперед по времени можно с помощью клавиши t. Назад с помощью shift+t.
Сразу перейти на нужное время можно нажав -b, и в появившемся диалоге ввести нужное время.
Также хранятся логи нагрузки за предыдущие дни. В Ubuntu 14.04 они лежат в каталоге /var/log/atop/. Открыть можно примерно так.

Читайте также:  Как удалить папку в linux debian

Цифры в названии файла обозначают дату в формате ГГГГММДД.

Источник

Контроль нагрузки и процессов: top, htop, atop

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

Проанализировать, что именно нагружает сервер, можно с помощью специальных утилит. Их довольно много; в статье мы рассмотрим три из них:

В целом они довольно похожи; работа с htop может быть немного удобнее за счет интерактивности; при этом top предустановлена во всех дистрибутивах Linux и не требует отдельной установки; atop отличается возможностью ведения логов.

При медленной работе сайта дополнительно рекомендуем воспользоваться сервисом PageSpeed Insights от Google, который анализирует скорость загрузки страниц и сообщает, каким образом можно оптимизировать работу сайта. Также можно попытаться оптимизировать работу сайта за счет переноса каталога временных файлов MySQL в tmpfs.

Как было сказано выше, утилита top предустановлена в UNIX-системах, поэтому для запуска вам достаточно подключиться к серверу по SSH и выполнить команду top.

Вывод утилиты выглядит следующим образом:

В верхней части выводится информация о системе, ниже – список процессов. Вывод обновляется каждые 2 секунды. Самые “жадные” до ресурсов процессы, оказывающие самую большую нагрузку на процессор, будут выведены вверху списка.

Сведения о системе

Слева вверху указано текущее время системы, далее:

Up – время работы системы с последнего запуска.

User – количество текущих пользователей.

Load average – средняя нагрузка на сервер: отображаются значения за одну, пять и 15 минут назад.

Tasks – общее количество запущенных процессов в разных статусах (running – выполняемые; sleeping – в ожидании; stopped – остановленные; zombie – “зомби”, дочерние процессы, ожидающие завершения родительского процесса).

Cpu(s) – процент времени процессора, затраченного на выполнение процессов, в том числе:

us – пользовательские процессы (высокое значение данного показателя может указывать, в том числе, на проблемы в коде сайта, необходимость его оптимизации);

sy – процессы ядра;

id – неиспользуемые ресурсы (чем выше этот показатель, тем лучше);

wa – операции ввода/вывода, т.е. дисковые операции.

Mem, Swap – сведения об использовании оперативной памяти (total – общий объем, free – объем свободной памяти, used – объем использованной памяти).

Сведения о процессах

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

PID – идентификатор процесса;

USER – пользователь, запустивший процесс;

PR – приоритет процесса;

NI – измененный приоритет (присвоенный пользователем с помощью команды nice);

VIRT – объем используемой виртуальной памяти (здесь выводится тот объем памяти, который был запрошен процессом, даже если фактически используется меньше);

RES – объем используемой оперативной памяти (в данном случае, если процесс запросил 50Мб памяти, а использует 10Мб, будет выведено 10Мб);

SHR – объем памяти, разделяемой с другими процессами (т.е. память, которая может быть использована другими процессами);

Читайте также:  Live usb kali linux с сохранением данных

S – статус процесса (running – запущен; sleeping – в ожидании; zombie – процесс-“зомби”);

%CPU – процент использования процессорного времени;

%MEM – процент использования оперативной памяти;

TIME – общее время работы процесса;

COMMAND – имя процесса (команда, которой был запущен процесс).

Управление

Для работы с утилитой top используются следующие клавиши:

Пробел – обновить вывод

M – сортировка по используемой памяти

P – сортировка по нагрузке на процессор (используется по умолчанию)

T – сортировка по времени работы процесса

A – сортировка по максимальному потреблению различных ресурсов

u – сортировка по имени пользователя (потребуется ввести имя пользователя)

k – завершить процесс (потребуется указать его идентификатор, PID)

n – изменить количество процессов в выводе (потребуется указать нужное количество)

c – вывести полный путь запущенного процесса (столбец COMMAND)

h – вывод справки

q – выход из программы

В отличие от top, утилиту htop сначала необходимо установить на сервер:

Ubuntu / Debian:

CentOS:

Вывод команды выглядит следующим образом:

Аналогично выводу top, в верхней части представлена информация о системе, ниже – список процессов. Значения столбцов в htop те же, что в top (они описаны выше).

Сверху слева вы можете видеть данные о нагрузке каждого ядра процессора, объем занятой памяти, сведения о количестве процессов, значения load avearage (средней нагрузки) за последние 1, 5 и 15 минут и аптайм системы.

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

Чтобы отсортировать их по занятой памяти (или любому другому параметру), просто кликните на название нужного столбца, например MEM. Для обратной сортировки (от меньшего к большему) достаточно кликнуть на тот же столбец еще раз. Также для управления сортировкой можно использовать клавиши M (сортировка по памяти), P (по процессору), T (по времени), аналогично утилите top.

Пробел – отметить процесс (таким образом можно помечать процессы для групповой операции с ними, например, завершения).

u – вывести процессы конкретного пользователя.

Для управления используются клавиши F1 – F10:

F1 – вывод справки

F2 – настройка вывода (добавление, удаление столбцов, отображение расширенной информации в верхнем блоке и пр.)

F3 – поиск процессов

F4 – фильтрация процессов (вывод процессов, имеющих в названии указанное слово)

F5 – вывод дерева процессов (родительские и дочерние процессы)

F6 – изменить тип сортировки

F7 / F8 – повышение / понижение приоритета

F9 – завершение процесса (в отличие от top, не требуется указание PID – просто выделите с помощью мыши или клавиатуры нужный процесс и нажмите F9. Для подтверждения завершения процесса нажмите Enter, для отмены – Esc).

F10 – выход из программы

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

Основным преимуществом утилиты atop является функция ведения логов. Благодаря этому можно не только контролировать нагрузку в текущий момент, но и отслеживать работу процессов за прошедшие дни, чтобы диагностировать плавающие ошибки, которые сложно “поймать” при мониторинге в реальном времени.

Утилиту необходимо установить на сервер:

Ubuntu / Debian:

CentOS:

Также рекомендуем добавить atop в автозагрузку:

Ubuntu / Debian / CentOS 7:

Источник

Adblock
detector