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

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

Для этого подключимся к серверу по SSH и введем в консоли top — Enter и вы увидим таблицу, в которой выведен список запущенных процессов. Изначально перечень составлен в порядке убывания нагрузки, приходящейся на процессор.

Запуск команды top и расшифровка таблицы

file

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

Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).

Информация, содержащаяся в других колонках, характеризует непосредственно уровень потребления ресурсов. Расшифровываются они следующим образом:

  • VIRT — виртуальная память, которую использует процесс

  • RES — физическая память, занятая данным процессом

  • SHR — общий объем памяти, которую данный процесс делит с другими

  • S — текущий статус процесса: R — running; S — sleeping, Z — zombie

  • %CPU — процент используемого времени центрального процессора

  • %MEM — процент ОЗУ, используемой процессом

  • TIME+ — продолжительность работы процесса с момента запуска

  • COMMAND — название команды (программы), которая инициировала процесс.

Расшифровка данных перед таблицей

Полезная информация об использовании ресурсов содержится не только в самой таблице, но и в пяти строках, которые ей предшествуют. Они являются своего рода summary по всем процессам.

Первая строчка дает нам общее представление о загрузке системы (top)

file

  • текущее время

  • up — продолжительность работы системы с момента запуска

  • user — текущее количество пользователей системы

  • load average — средняя загруженность системы одну минуту назад, пять и 15 соответственно.

Считается, что в норме данный показатель не должен превышать 1 для одноядерных процессоров. Соответственно, значение load average, равное количеству ядер, является предельным.

Вторая строка - статистика процессов (task)

file

  • total — общее количество процессов в системе

  • running — количество работающих в данный момент процессов

  • sleeping — количество ожидающих событий процессов

  • stopped — количество остановленных процессов

  • zombie — количество процессов, ожидающих родительский процесс для передачи статуса завершения

Третья строка - статистика использования центрального процессора (cpu)

file

  • us — процент использования центрального процессора пользовательскими процессам

  • sy — процент использования центрального процессора системными процессами

  • ni — процент использования центрального процессора процессами с приоритетом, повышенным при помощи вызова

  • id — процент времени, когда центральный процессор не используется

  • wa — процент использования центрального процессора процессами, ожидающими завершения операций ввода-вывода

  • hi - Hardware IRQ (аппаратные прерывания) — процент использования центрального процессора обработчиками аппаратных прерываний

  • si - Software Interrupts (программные прерывания) — процент использования центрального процессора обработчиками программных прерываний

  • st - Steal Time (заимствованное время) — количество ресурсов центрального процессора "заимствованных" у виртуальной машины гипервизором для других задач (таких, как запуск другой виртуальной машины); это значение будет равно нулю на настольных компьютерах и серверах, не использующих виртуальные машины

В четвертой и пятой строке выводится информация об использовании физической оперативной памяти и раздела подкачки соответственно (swap). Значения в порядке следования: общее количество памяти (total), количество используемой памяти (used), количество свободной памяти (free), количество памяти в кэше буферов (buffers).

file

Добавление столбцов и сортировка таблицы top

Теперь мы знаем, какая информация зашифрована в каждом столбце таблицы top. Базовая сортировка данных осуществляется по уровню использования времени ЦПУ, оно же %CPU. Чтобы выполнить в top сортировку по памяти (%MEM), достаточно ввести Shift+M в режиме работы команды top. Если интересует, какой из процессов дольше всего работает, нажмите Shift+T, и увидите интересующую информацию в колонке TIME+. Можно отсортировать процессы по их номеру (PID), набрав на клавиатуре Shift+N.

Чтобы вернуться к режиму сортировки по уровню потребления ресурсов процессора, воспользуйтесь комбинацией Shift+P.

Далеко не все способы сортировки можно задать с помощью «горячих клавиш». Например, для определения процессов, которые больше всего потребляют SWAP, используйте меню выбора полей, которое вызывается комбинацией Shift+F.

file

С помощью клавиш навигации находим SWAP (или любой другой нужный параметр), клавишей «d» закрепляем его добавление в общую таблицу команды top (в качестве подтверждения вашего выбора рядом появится символ «»). Чтобы задать сортировку по SWAP, здесь же нажимаем «s» и выходим из меню (ESC)*.

Убедиться, что сортировка работает по заданному признаку, можно нажав «x». Колонка с соответствующим признаком будет подсвечена (выделена жирным шрифтом).

file


Существует более удобная утилита под названием atop, более подробно c ее функционалом можно ознакомиться на данной странице.


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

Обновлено 1 декабря 2020 г.