Команда top в Linux. Полное руководство

07.08.2025

Введене

Команда top (table of processes) — это консольная команда, которая выводит в терминал информацию обо всех работающих в системе процессов. Один из основных инструментов Linux администратора. В статье рассмотрим основные показатели, назначения колонок и раличные команды для работы с программой, в том числе интерактивные.

Установка

Обычно программа top идёт предустановленной, но бывает что нет. Чтобы её установить используйте следующую команду:

sudo apt install top

Описание интерфейса программы top

Для запуска кооманды просто выполните:

top

Окно программы top делится на две части:

Верхняя часть: информация о системе, использование ресурсов CPU, MEM, SWAP.

Нижняя часть: список запущенных процессов и информацией о них. Стандартно отсортирован по нагрузке на процессор.

Описание информации о системе

Разберём все показатели данных о системе, что предоставляет нам команда top.

Первая строка top

top - 11:59:32 up 50 min,  0 users,  load average: 0.0

Тут всё довольно просто: текущее время, uptime, количество активных пользователей, load average

Хотелось бы немного остановиться на показателе такой метрики как load average. load average - это показатель средней нагрузки на Linux (на систему в целом, а не только CPU или Mem), некий средий показатель кол-ва исполняемых и ожидающих потоков. Значение 0.0 показывает нам, что система сейчас находится в состоянии простоя или нагрузка минимальная.

Tasks

Tasks:   5 total,   1 running,   4 sleeping,   0 stopped,   0 zombie

Это информация о запущенных процессах. Тут есть очень интересные показатели, сейчас разберем их ниже.

  • total — общее кол-во всех процессов.
  • running — общее кол-во выполняемых процессов в системе на данный момент.
  • sleeping — соответствено это спящие процессы, которые находятся в ожидании. Например: ввода/вывода.
  • stopped — это остановленные процессы, в основном сюда попадают процессы, которые были остановлены пользователем. (сигнал SIGSTOP)
  • zombie 🧟 — это процесс, который завершился и фактически он не выполняется, но его запись в таблице процессов всё ещё существует. А ещё его нельзя убить из SIGKILL. Обычно в зомби отлетают дочерние процессы, созданные при помощи fork или clone (создание нового процесса — копия родительского). Но мы же с вами знаем, что для того чтобы убить зомби нужно зарядить ему прямо в голову и для процесса это будет инициация завершения процесса от родителького процесса: kill -s SIGCHLD PID. Если это не поможет, то можно убить родительский процес - это завершит все дочерние.

%Cpu(s)

%Cpu(s):  5.2 us,  5.9 sy,  0.0 ni, 88.7 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st

Это информация о запущенных процессах. Тут есть очень интересные показатели, сейчас разберем их ниже.

  • us / (User CPU time) — время, затраченное на работу программ пользователей (не учитывая ядра).
  • sy / (System CPU time) — а это уже время, затраченное на работу ядра системы.
  • ni / (Nice CPU time) — время, затраченное на работу программ с измененным приоритетом.
  • id / (Idle) — время, проведённое в ожидании. Когда процессор простаивает в ожидании программ.
  • wa / (Input output wait) — время, затраченное на ожидание чтения или записи на диск. Хотя в это время система может свои ресурсы направить на выполнение других процессов, но конкретно для определенного процесса он может простаивать.
  • hi / (Hardware interrupts) — Это аппаратные прерывания. Время, затраченное на обработку hardware-прерываний. Например когда железо отправляет процессору информацию о каком-то событии (сигнал).
  • si / (Software interrupts) — Это программные прерывания. Аналогично hi
  • st / (Steal Time) — украденное время 😂. Этот параметр больше под виртуальные машины. Паример если у вас на одном гипервизоре зпущены две виртуальные машины и вдруг одной из них понадобилось больше ресурсов чем обычно, то она будет воровать процессорное время у второй машины. параметр в этом случе будет расти.

Ниже ещё буду описывать раличные интерактивные команды, в том числе и по CPU. Например 1 отобразит нам всю информацию по всем ядрам/потокам.

MiB Mem и MiB Swap

MiB Mem :  16183.3 total,   3356.7 free,  12602.7 used,    224.0 buff/cache
MiB Swap:  49152.0 total,  46819.9 free,   2332.1 used.   3018.0 avail Mem

Вот и добрались до оперативной памяти, тут же информация о виртуальной памяти, которая используется для временного хранения данных на диске, если опреативная память переполнена. Можно менять отображения Гб, Мб, KiB через кнопку E.

  • total — общее кол-во оперативной памяти.
  • free — сколько оперативной памяти свободно. Но не совсем 🙃
  • used — кол-во используемой оперативной памяти.
  • buff/cache — кол-во памяти, используемой для кэша. Даже если там используется большой объем памяти - это тоже хорошо.
  • avail Mem — Вот тут по сути отражена свободная память. Это та память которую мы по новые процессы можем прямо сейчас забрать.

Информация по процессам в top

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

  • PID — это ID процесса.
  • USER — имя пользователя, каторый иницировал запуск процесса.
  • PR — приоритет процесса. (0-20) где 0 - это наивысший приоритет. Можно увидеть что вместо цифр там rt. Это real time, уникальность этого процесса что он будет выполняться моментально. Обычно такие процессы
  • NI / niceness — вежливость процесса 😜. Это параметр, который отражает информацию о том насколько был именён PR от изночального значения.
  • VIRT — виртуальная память. Для каждого процесса создаётся адресное пространство
  • RES — количество физической памяти (использованной, а не выделенной), которую использует процесс.
  • SHR / shared — потенциально сколько виртуальной памяти может быть разделено с другими процессами.
  • S — состояние процесса:
    • R / running — выполняется.
    • P / parked — припаркован (неактивен, но готов к работе, обычно связано с энергосбережением).
    • I / Idle — бездействующий поток ядра.
    • S / sleeping — спящий.
    • D / uninterruptible sleep — ожидает дискового ввода/вывода, и не принимает никакие сигналы.
    • T / stopped by job control signal — остановлен специальным сигналом.
    • t / stopped by debugger during trace — остановлен в процессе дебага.
    • Z / zombie — зомби.
  • %CPU — использование CPU в процентах от общего объема мощьности CPU.
  • %MEM — показывает это же значение что и RES, но в процентах от всей оперативной памяти.
  • TIME+ — сколько времени этот процесс работал на ЦПУ, с точностью до сотых долей секунды.
  • COMMAND — команда, с помощью которой запустили данный процесс.

Это общая информация по тем столбцам, что отображаются в стандартной настройке, но при желании можно добавить иные параметры нажав F

Как выбрать/настроить нужные поля в top

Итак, для выбора столбцов в программе top прожимаем кнопку F и:

  • d или пробел — добавить выбранное поле.
  • s — выбрать поле для сортировки.
  • q — вернуться в режим просмотра.

Команды управления и фильтрация программой top

Для работы с утилитой top используются следующие горячие клавиши.

Общая информация

  • Пробел — обновить вывод
  • q или Esc — выход из top
  • h — вывод справки по утилите
  • d или s — изменить интервал обновления информации 5 - 15 минут
  • z — подсветить работающие процессы
  • Z — изменить цветовую схему
  • W — текущие настройки программы в конфигурационный файл ( ~/.toprc).
  • S — показывать процессы системы. Обычно, системные процессы такие как: pager или swapper не показываются. Эта опция сделает их видимыми
  • H — выводить потоки процессов
  • Y — посмотреть дополнительные сведения о процессе, открытые файлы, порты, логи и т д;
  • l — скрыть или вывести информацию о средней нагрузке на систему (первую строку с аптаймом в top)
  • V — отображение процессов в виде дерева
  • c — вывести полный путь запущенного процесса (столбец COMMAND)
  • 1 — отобразить всю статистику по всем ядрам

Фильтрация и работа с процессами:

  • M — сортировка по используемой памяти
  • P — сортировка по нагрузке на процессор (используется по умолчанию)
  • T — сортировка по времени работы процесса
  • A — сортировка по максимальному потреблению различных ресурсов
  • u — сортировка по имени пользователя (потребуется ввести имя пользователя)
  • i — переключение режима отображения процессов, которые сейчас не используют ресурсы процессора
  • n — максимальное количество процессов, для отображения в программе
  • L — поиск по слову
  • o — фильтрация процессов по произвольному условию, по которому надо выполнять сортировку
  • <> — перемещение поля сортировки вправо и влево
  • k — послать сигнал завершения процессу по номеру его PID
  • r — Изменить приоритет процесса

Однако у команды top в linux есть и опции для запуска. Например:

top -H

Небольшой список опций для top:

  • -v — вывести версию программы
  • -b — режим только для вывода данных, программа не воспринимает интерактивных команд и выполняется пока не будет завершена вручную
  • -c — отображать полный путь к исполняемым файлам команд
  • -H — включает вывод потоков процессов
  • -i — не отображать процессы, которые не используют ресурсы процессора
  • -O — вывести все доступные поля для сортировки
  • -p — отслеживать только указанные по PID процессы, можно указать несколько PID
  • -u — выводить только процессы, запущенные от имени указанного пользователя

И в заключение

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

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас 😉 !
Отдельное спасибо всем, кто отправляет донатики 😀! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.
388