Linux. Команда top
Команда top
позволяет отслеживать процессы и использование системных ресурсов в Linux. Это один из самых полезных инструментов и он поставляется в каждом дистрибутиве. В отличие от других команд, команда top
является интерактивной — можно просматривать список процессов, завершать процессы, сортировать и т.д.
Общая информация о системе
На первой строке
- текущее время
- как долго работает система после последней загрузки
- сколько в системе активных пользователей
- средняя загрузка системы за последние 1 и 5 и 15 минут
На второй строке
- общее количество процессов
- количество работающих в данный момент
- количество спящих процессов
- количество остановленных процессов
- количество зомби процессов
На третьей строке показана информация об использовании CPU
us
— потребление cpu пользовательскими процессамиsy
— потребление cpu системными процессамиni
— потребление cpu пользовательскими процессами c измененным приоритетом (командойnice
илиrenice
)id
— простаивание cpu (отidle
— работать вхолостую)wa
— процент времени, в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Если слишком высокое (более 10), значит за диск не поспевает процессором.hi
— процент времени работы аппаратных прерываний. Периферийные устройства могут прерывать работу процессора, чтобы передать какие-то данные.si
– процент времени работы программных прерываний. Некоторые приложения могут прерывать работу процессора, чтобы передать какие-то данные.st
— процент времени, когда реальный процессор не был доступен виртуальной машине. Будет расти, если виртуальной машине выделить больше ядер, чем имеет гипервизор. Этот показатель имеет значение только в системах виртуализации.
На четвертой и пятой строке показана информация о потреблении оперативной памяти (Mem) и файла подкачки (Swap)
total
— общее количество памятиfree
— количество свободной памятиused
— количество используемой памятиbuff/cache
— память, выделенная под буфер и дисковый кэшavail Mem
— память, которая может быть выделена для новых процессов
Информация по каждому процессу
После общих данных о состеме идет таблица с информацией по каждому процессу.
По умолчанию в таблице 12 колонок (но это можно изменить, см. ниже)
PID
— идентификатор процессаUSER
— имя пользователя, под которым работает процессPR
— приоритет процессаNI
— любезность процесса, чем она выше, тем ниже приоритетVIR
— общее количество памяти, которое способен адресовать процесс в данный момент времени. Включает в себяRES
,SHR
, прикреплённые файлы (например — файлы библиотек). Также включает в себя память, которая была выделена, но не использована.RES
— количество физической памяти, которую использует процессSHR
— количество разделяемой памяти, которую использует процесс. Разделяемая память может быть разделена с другими процессами.S
— состояние процесса
S (sleeping)
— спящийR (running)
— в работеZ (zombie)
— зомбиD (uninterruptible sleep)
— ожидает дискового ввода/вывода, и не принимает никакие сигналыT (stopped by job control signal)
— остановлен специальным сигналомt (stopped by debugger during trace)
— остановлен в процессе дебагаI (Idle)
— бездействующий процесс
%CPU
— использование cpu в процентах%MEM
—RES
в процентах от общего количества памятиTIME+
— сколько времени с этим процессом работал ЦПУ, с точностью до сотых долей секундыCOMMAND
— с помощью какой команды запустили процесс
Сортировка списка процессов
Наиболее частой причиной использования top
является выяснение того, какой процесс потребляет много ресурсов. Можно использовать следующие клавиши, чтобы отсортировать таблицу процессов по нужному полю.
M
— для сортировки по использованию памятиP
— для сортировки по использованию CPUN
— для сортировки по идентификатору процессаT
— для сортировки по времени работы
По умолчанию результаты отображаются в порядке убывания, однако можно отсортировать в порядке возрастания с помощью команды R
. Подсветить текущее поле сортировки таблицы можно с помощью команды x
. Подсветить процессы, у которых поле S
таблицы имеет значение R (running)
можно с помощью команды y
.
Изменить поле сортировки можно также с помощью команд <
или >
(не забывайте Shift
) — поле изменяется с текущего на то, что слева или справа.
Представление общей информации
С помощью команд l
, t
, m
можно переключать по кругу представление строк общей информации
- команда
l
,load avg
— показать или скрыть первую строку - команд
t
, задачи и процессор — показать, скрыть, изменить представление для CPU - команд
m
, память и файл подкачки — показать, скрыть, изменить представление
Представление таблицы процессов
Есть много команд, которые позволяют изменить представление таблицы процессов. Рассматривать все слишком долго, так что только некоторые.
- команда
c
— переключатель, показывать/скрывать полный путь к командам - команда
i
— переключатель, показывать/скрывать неактивные задачи - команда
V
— переключатель, показывать/скрывать дерево процессов - команда
S
— переключатель, показывать/скрывать использованное процессорное время не только самого процесса, но и всех его дочерних процессов, которые уже отработали и умерли
Управление полями таблицы
Команда f
или F
открывает экран управления полями таблицы процессов, где показаны
- имя текущего окна (см. ниже)
- текущее поле сортировки
- все поля в их текущем порядке
Записи, отмеченные звездочкой, являются текущими отображаемыми полями таблицы. Как указано в инструкции, перемещение по списку полей возможно с помощью клавиш со стрелками вверх и вниз. С помощью клавиш Home
или End
также можно перейти к первому или последнему полю.
Команда d
(от display
) позволяет показать или скрыть поле в таблице процессов (добавляет или убирает звездочку). Клавиша стрелка вправо захватывает поле, чтобы его можно было перемещать вверх или вниз. А клавиша стрелка влево фиксирует новое положение поля после перемещения.
Кроме того, с помощью команды s
можно установить поле, по которому будут отсортированы записи таблицы процессов. Для выхода из экрана управления полями таблицы предназначены клавиши q
или Esc
.
Фильтрация строк таблицы
Команда u
или U
позволят указать пользователя, процессы которого нужно показать. Команда o
или O
позволяет указать поле и значение для фильтрации строк таблицы (например, COMMAND=top
). Фильтров может быть несколько, посмотреть их можно с помощью Ctrl+O
, команда =
сбрасывает все фильтры.
Поиск в таблице процессов
Команда L
позволяет ввести строку для поиска, команда &
(не забывайте Shift
) позволяет перейти к следующему найденному совпадению. Отменить поиск можно с помощью команды =
.
Завершение процессов
Для этого предназначена команда k
— будет предложено сначала ввести PID
процесса, а потом — сигнал, который нужно ему отправить. Если оставить поле сигнала пустым — будет использоваться SIGTERM
. Чтобы принудительно убить процесс — можно отправить SIGKILL
. Также можно использовать номер сигнала — для SIGTERM
номер равен 15
, для SIGKILL
номер равен 9
.
Альтернативный режим вывода
Команда A
переключает между полноэкранным режимом и режимом нескольких окон, каждое из которых можно настроить. Таблицы процессов в этих окнах показывают разный состав полей и разную сортировку.
- окно
1:Def
, сортировка по умолчанию%CPU
- окно
2:Job
, сортировка по умолчаниюPID
- окно
3:Mem
, сортировка по умолчанию%MEM
- окно
4:Usr
, сортировка по умолчаниюUSER
В режиме управления полями (клавиша f
) переключаться между окнами по кругу можно с помощью команд a
или w
— и таким образом настроить все четыре окна.
Переключение между окнами
Те четыре окна, о которых мы говорили выше, можно просматривать в полноэкранном режиме. Для переключения на другое окно предназначена команда g
— будет предложено ввести номер окна. Если мы находимся в альтернативном режиме вывода, то для переключения окна предназначены команды a
и w
. Текущее окно показывается в начале первой строки общей информации о системе. Текущее окно — это то окно, куда будут отправляться наши команды.
Сохранение настроек
Команда W
сохранит настройки в домашней директории, так что при следующем запуске top
— все текущие настройки будут восстановлены.
Получение справки по командам
Команда h
показывает экран справки по работе в полноэкранном режиме. Из этой справки можно перейти к справке по работе в альтернативном режиме — опять с помощью команды h
. Выход из справки — команда q
или Esc
.
Поиск: CLI • Linux • Команда • Конфигурация • Настройка • Процесс • top • CPU