Информация о процессах в Linux. Команда Top

При работе в интерфейсе командной строки Linux часто требуется информация о процессах, например, какая программа потребляет больше всего ресурсов процессора или памяти. Для этого есть специальная команда — top. В данном руководстве мы разберем, как она работает, на нескольких простых и понятных примерах..

Синтаксис

Команда top выводит краткие данные о системе и список процессов, обрабатываемых ядром Linux, а также связанную с ними полезную информацию. Ее синтаксис следующий:

top [ОПЦИИ] [АРГУМЕНТЫ]

Информация динамически обновляется в реальном времени. Конкретные отображаемые данные для информации о системе и процессах пользователь может настроить сам и сохранить для последующих запусков. Команда предоставляет интерактивный интерфейс для работы с процессами и индивидуальной настройки.
Использование top
Пользоваться top очень легко. Достаточно просто выполнить команду top без опций:

top

Результат был следующим:

Стоит заметить, что на скриншоте мы видим фиксированный в конкретный момент времени образ результата, который динамически изменяется через заданный интервал.

Выводимые данные

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

Вторая строка содержит информацию об общем количестве процессов, количестве запущенных, спящих, остановленных и «зомби»-процессов.

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

us, user : время работы с пользовательскими процессами без явного приоритета планирования (приоритет по умолчанию не менялся при помощи команды nice)
sy, system : время работы с процессами ядра (системными)
ni, nice : время работы с пользовательскими процессами, приоритет которых был назначен при помощи nice
id, idle : время, затраченное обработчиком простоя ядра
wa, IO-wait : время ожидания завершения ввода/вывода
hi : время обработки аппаратных прерываний
si : время обработки программных прерываний
st : время, использованное гипервизором, ожидание виртуальной машиной ответа физического процессора.

Две последующие строки показывают информацию об использовании оперативной памяти и свопа. Далее, наконец, выводится информация о процессах (в указанном порядке): идентификатор

PID- идентификатор
USER— владелец
PR-приоритет
NI-значение nice,
VIRT-объем используемой виртуальной памяти
RES-объем используемой физической  памяти
SHR-объем используемой разделяемойпамяти
S-статус процесса (S — спящий, R — запущенный, Z — «зомби»),
%CPU— использование процессора
%MEM-использование ОЗУ
TIME-время активности
COMMAND-инициировавшая процесс команда.

Остановка процесса

Выполнить это действие довольно просто — нажмите “k”, и программа запросит идентификатор процесса, который вам нужно остановить. Прямо над таблицей с информацией о процессах вы увидите сообщение следующего вида:

PID to signal/kill [default pid = 1]

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

Send pid 109 signal [15/sigterm]

Здесь мы остановили программу с PID 109

Изменение приоритета процесса

Если вам требуется изменить приоритет программы, нажмите ‘r’. Вы увидите вот такое сообщение:

PID to renice [default pid = 627]

Аналогично предыдущему примеру, можно ввести PID или по умолчанию изменить приоритет первого процесса в списке. Программа запросит новое значение приоритета (nice):

Renice PID 627 to value

Введите значение и нажмите Enter. Значение приоритета заданного процесса будет изменено.

Изменение интервала обновления

По умолчанию результат top обновляется каждые 3 секунды, но этот интервал можно изменить, нажав ‘d’. Команда запросит новое значение:

Change delay from 3.0 to

Введите его и нажмите Enter.

Вывод процессов заданного пользователя

Команда top по умолчанию отображает все процессы, но вы можете ограничить выводимые результаты процессами конкретного пользователя. Для этого нужно нажать ‘u’. Вы увидите сообщение следующего вида:

Which user (blank for all)

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

Например, если ввести ‘root’, результат будет иметь следующий вид:

Также можно воспользоваться опцией командной строки -u и указать нужного пользователя сразу при запуске команды:

top -u root

Отображение абсолютных путей команд

Чтобы полностью увидеть команды, которые были инициаторами процессов, со всеми опциями командной строки и аргументами, нужно нажать ‘c’:

Вы увидите абсолютные пути команд, а также все опции и аргументы.

Сортировка вывода

Для сортировки отображения во время работы команды top введите одно из значений

  • [M] Сортировать по объёму используемой памяти.
  • [P] Отсортировать по загрузке процессора.
  • [u] Сортировать по имени пользователя.

Например сортировка по использованию объема памяти выглядит так

 

Цветовое выделение запущенных процессов

Чтобы выделить запущенные процессы другим цветом, нажмите клавишу ‘z’. Это поможет вам легче выявлять такие процессы.

Выход после заданного числа обновлений

По умолчанию top обновляет выводимые данные до нажатия ‘q’ (выход из программы). Опция -n при запуске позволяет указать необходимое количество обновлений, после которых выход произойдет автоматически. Например, следующая команда выполнит 10 обновлений:

top -n 10

Сохранение результатов в файл

Для сохранения выводимых командой top результатов в файл выполните следующую команду. Опция -b активирует “пакетный” режим: top не будет принимать входных команд, выполнив заданное опцией -n количество обновлений.

top -n 1 -b > top-output.txt

Получение помощи и выход из программы
Для получения помощи о команде top нажмите ‘h‘:

Чтобы выйти из программы, как уже упоминалось, нажмите ‘q’.

Заключение

Команда top — инструмент с очень широким функционалом, но полное его рассмотрение выходит за рамки данного руководства. Освоив разобранные в данной статье базовые функции, вы можете обратиться к man-странице команды для расширения своих знаний.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: