Просмотр и управление процессами Linux с помощью top


В инструкции описан процесс просмотра и управления процессами с помощью утилиты top на VPS с операционной системой Linux. На текущий момент команда top считается устаревшей. Более современный её вариант - это команда htop.

Что это такое команда top

Top - команда, которая позволяет пользователям отслеживать процессы и использование системных ресурсов в Linux. Это один из самых полезных инструментов и он поставляется в каждом дистрибутиве. В отличие от других команд она является интерактивной, и вы можете просматривать список процессов, завершать процессы и сортировать. Утилита установлена по умолчанию. Запускается она командой top.

Интерфейс команды top после запуска выглядит так:

Интерфейс можно разделить на две рабочие зоны:

  1. Верхняя рабочая зона содержит сведения о времени работы сервера, свободных и занятых ресурсах, пользователях;
  2. Основная рабочая зона - это динамически обновляемая таблица, содержащая сведения о процессах.

В верхнем левом углу экрана отображено текущее время - 16:10:23, за которым следует время безотказной работы системы, в нашем примере - 7 дней 14 часов 54 минуты. Далее в строке идет количество активных сеансов пользователя.

В разделе Tasks отображается статистика процессов, выполняемых в вашей системе. Далее перечислено общее количество процессов, активные, спящие, остановленные и процессы-зомби.

Раздел использования CPU показывает процентное время процессорного времени, затрачиваемого на различные задачи.

Последние 2 строки показывают информацию об использовании памяти в системе. Строки Mem и Swap отображают информацию о RAM и области подкачки соответственно. Указаны значения общего, свободного, используемого объема и кеша. Avail Mem - это объем памяти, который может быть выделен для процессов, не использую большую область диска.

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

Значение столбцов указаны в следующей таблице.

PID Это идентификатор процесса, уникальное положительное целое число, которое идентифицирует процесс.
USER Это эффективное имя пользователя (соответствующее идентификатору пользователя) пользователя, который запустил этот процесс. Linux назначает реальный идентификатор пользователя и эффективный идентификатор пользователя для процессов; последний позволяет процессу действовать от имени другого пользователя. Например, пользователь, не являющийся пользователем root, может с правами root установить пакет.
PR Поле показывает приоритет выполнения процесса с точки зрения ядра.
NI Поле показывает nice-значение процесса.
VIRT Общий объем памяти, потребляемый процессом.Он включает в себя код программы, данные, хранящиеся в памяти, а также любые области памяти, которые были подкачены на диск.
RES Количество памяти, потребляемая процессом в оперативной памяти.
SHR Объем памяти, совместно используемый другими процессами.
S В этом поле отображается состояние процесса в однобуквенной форме(R - Runnable, D - Interruptible sleep, S - Uninterruptible sleep, T - Stopped, Z - Zombie).
%CPU Параметр выражает объем в процентах от общей доступной оперативной памяти ОЗУ.
%MEM Параметр выражает значение RES в процентах от общей доступной оперативной памяти.
TIME+ Общее время процессора, используемое процессом с момента его начала, с точностью до сотых долей секунды.
COMMAND Здесь отображено название процессов.

Остановка (kill) сервисов

Если вы хотите остановить процесс, просто нажмите k, во время работы утилиты top. Эта опция вызовет подсказку, в которой будет запрашиваться идентификатор процесса, введите его и нажмите enter. В нашем примере, мы останавливаем работу текстового редактора vim.

Затем введите сигнал, с помощью которого процесс должен быть убит. Если вы оставите поле пустым, то будет использоваться SIGTERM. Если вы хотите принудительно убить процесс, вы можете ввести здесь SIGKILL. Также можно использовать номер сигнала. Например, номер для SIGTERM равен 15, а SIGKILL - 9.

Примечание: если вы оставите идентификатор процесса пустым и нажмете Enter, то завершится самый верхний процесс в списке.

Сортировка списка процессов

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

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

Дополнительные возможности

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

Иногда в процессе работы может понадобиться иерархия процессов child-parent. Вы можете раскрыть ее с помощью клавиш V во время работы top.

Чтобы вывести процессы определенного пользователя, нажмите u, затем введите имя пользователя или оставьте его пустым, чтобы отобразить процессы для всех пользователей.

Вы можете нажать t и m, чтобы изменить стиль статистики процессора и памяти.

Последнее обновление: 17.03.2023