Любой сервер, имеет ограниченный объем ресурсов. Каждая программа, работающая в активном или фоновом режиме, использует определенное количество виртуальной и физической памяти, процессорного времени и т.д. Иными словами, создает определенную нагрузку на сервер.
Она позволяет вывести в виде таблицы перечень запущенных процессов и оценить, какой объем ресурсов они потребляют, т.е., какую нагрузку создают на сервер и дисковую подсистему. Такая информация помогает в дальнейшем оптимизировать работу системы.
Для этого подключимся к серверу по SSH и введем в консоли top — Enter и вы увидим таблицу, в которой выведен список запущенных процессов. Изначально перечень составлен в порядке убывания нагрузки, приходящейся на процессор.
Запуск команды top и расшифровка таблицы
Первые два столбика — номер процесса (PID) и имя пользователя, его запустившего (USER).
Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).
Информация, содержащаяся в других колонках, характеризует непосредственно уровень потребления ресурсов. Расшифровываются они следующим образом:
-
VIRT — виртуальная память, которую использует процесс
-
RES — физическая память, занятая данным процессом
-
SHR — общий объем памяти, которую данный процесс делит с другими
-
S — текущий статус процесса: R — running; S — sleeping, Z — zombie
-
%CPU — процент используемого времени центрального процессора
-
%MEM — процент ОЗУ, используемой процессом
-
TIME+ — продолжительность работы процесса с момента запуска
-
COMMAND — название команды (программы), которая инициировала процесс.
Расшифровка данных перед таблицей
Полезная информация об использовании ресурсов содержится не только в самой таблице, но и в пяти строках, которые ей предшествуют. Они являются своего рода summary по всем процессам.
Первая строчка дает нам общее представление о загрузке системы (top)
-
текущее время
-
up — продолжительность работы системы с момента запуска
-
user — текущее количество пользователей системы
-
load average — средняя загруженность системы одну минуту назад, пять и 15 соответственно.
Считается, что в норме данный показатель не должен превышать 1 для одноядерных процессоров. Соответственно, значение load average, равное количеству ядер, является предельным.
Вторая строка - статистика процессов (task)
-
total — общее количество процессов в системе
-
running — количество работающих в данный момент процессов
-
sleeping — количество ожидающих событий процессов
-
stopped — количество остановленных процессов
-
zombie — количество процессов, ожидающих родительский процесс для передачи статуса завершения
Третья строка - статистика использования центрального процессора (cpu)
-
us — процент использования центрального процессора пользовательскими процессам
-
sy — процент использования центрального процессора системными процессами
-
ni — процент использования центрального процессора процессами с приоритетом, повышенным при помощи вызова
-
id — процент времени, когда центральный процессор не используется
-
wa — процент использования центрального процессора процессами, ожидающими завершения операций ввода-вывода
-
hi - Hardware IRQ (аппаратные прерывания) — процент использования центрального процессора обработчиками аппаратных прерываний
-
si - Software Interrupts (программные прерывания) — процент использования центрального процессора обработчиками программных прерываний
-
st - Steal Time (заимствованное время) — количество ресурсов центрального процессора "заимствованных" у виртуальной машины гипервизором для других задач (таких, как запуск другой виртуальной машины); это значение будет равно нулю на настольных компьютерах и серверах, не использующих виртуальные машины
В четвертой и пятой строке выводится информация об использовании физической оперативной памяти и раздела подкачки соответственно (swap). Значения в порядке следования: общее количество памяти (total), количество используемой памяти (used), количество свободной памяти (free), количество памяти в кэше буферов (buffers).
Добавление столбцов и сортировка таблицы top
Теперь мы знаем, какая информация зашифрована в каждом столбце таблицы top. Базовая сортировка данных осуществляется по уровню использования времени ЦПУ, оно же %CPU. Чтобы выполнить в top сортировку по памяти (%MEM), достаточно ввести Shift+M в режиме работы команды top. Если интересует, какой из процессов дольше всего работает, нажмите Shift+T, и увидите интересующую информацию в колонке TIME+. Можно отсортировать процессы по их номеру (PID), набрав на клавиатуре Shift+N.
Чтобы вернуться к режиму сортировки по уровню потребления ресурсов процессора, воспользуйтесь комбинацией Shift+P.
Далеко не все способы сортировки можно задать с помощью «горячих клавиш». Например, для определения процессов, которые больше всего потребляют SWAP, используйте меню выбора полей, которое вызывается комбинацией Shift+F.
С помощью клавиш навигации находим SWAP (или любой другой нужный параметр), клавишей «d» закрепляем его добавление в общую таблицу команды top (в качестве подтверждения вашего выбора рядом появится символ «»). Чтобы задать сортировку по SWAP, здесь же нажимаем «s» и выходим из меню (ESC)*.
Убедиться, что сортировка работает по заданному признаку, можно нажав «x». Колонка с соответствующим признаком будет подсвечена (выделена жирным шрифтом).
Существует более удобная утилита под названием atop, более подробно c ее функционалом можно ознакомиться на данной странице.
Если у Вас возникли трудности в настройке или появились дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через систему тикетов.