Top

topконсольная программа для отображения списка работающих в системе процессов и информации о них. По умолчанию сортирует процессы по загрузке процессора в режиме реального времени. Программа разработана для UNIX-подобных операционных систем и распространяется под свободной лицензией GNU FDL[1].

Утилита широко используется системными администраторами. Среди альтернатив для GNU/Linux выделяются atop и htop.

Общие сведения

Пример

last pid: 34218; load averages: 0.65, 0.36, 0.29 up 0+11:38:05 16:30:36
3 processes: 1 running, 2 sleeping
Mem: 82M Active, 93M Inact, 438M Wired, 112K Cache, 112M Buf, 1390M Free
Swap: 2048M Total, 2048M Free
  PID USERNAME  THR PR  NICE   SIZE    RES  STATE  C   TIME   WCPU COMMAND
23805 root        1 106   10  6080K  3128K select  3   0:01  0.00% sshd
23806 root        1   8   10  3136K  2008K   wait  2   0:00  0.00% bash
34218 root        1 106   10  2160K  1376K   CPU2  0   0:00  0.00% top

Работа с программой

Программа с частотой обновления раз в 2 секунды показывает текущую активность процессов в виде таблицы. Основные столбцы:

  • PID — идентификатор процесса
  • USERNAME — пользователь, от имени которого запущен процесс
  • THR — количество потоков процесса
  • PR — текущий приоритет процесса
  • NICE — приоритет, установленный командой nice (от −20 — максимальный, до 19 — минимальный)
  • SIZE — размер процесса (данные, стек и т. д.) в килобайтах
  • RES — текущее использования оперативной памяти процессом
  • STATE — текущее состояние (например, «START», «RUN», «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • C — номер процессора, на котором выполняется процесс (актуально для SMP-систем)
  • TIME — время использования процессора в секундах
  • VIRT — общий объем виртуальной памяти, занимаемой процессом
  • %CPU — процент времени процессора, использованный процессом
  • %MEM — процент оперативной памяти, используемый данным процессом
  • WCPU — среднее значение использования процессора
  • COMMAND — команда, запустившая процесс

Для выхода из top нажмите клавишу [q].

Полезные интерактивные команды, доступные в top:

  • [1] Отобразить статистику по всем ядрам.
  • [c] Показать абсолютный путь к команде и её аргументы.
  • [h] Открыть справку.
  • [k] Завершить процесс (предлагается ввести PID и сигнал).
  • [M] Сортировка по использованию памяти.
  • [n] Изменить количество отображаемых процессов.
  • [P] Сортировка по загрузке процессора.
  • [r] Изменить приоритет процесса.
  • [u] Сортировка по имени пользователя.
  • [Z] Выбор цветовой подсветки.
  • [z] Подсветить работающие процессы.
  • [Пробел] Немедленное обновление экрана.

Сокращённый пример вывода:

# top -SIt
last pid:  9262;  load averages:  0.13,  0.40,  0.36              up 2+09:16:14  22:13:43
103 processes: 1 running, 88 sleeping, 14 waiting
CPU states:    % user,     % nice,     % system,     % interrupt,     % idle
Mem: 31M Active, 136M Inact, 61M Wired, 3212K Cache, 34M Buf, 12M Free
Swap: 1024M Total, 30M Used, 994M Free, 2% Inuse

  PID USERNAME  THR PR  NICE   SIZE    RES STATE    TIME   WCPU COMMAND
   11 root        1 171 ki31     0K     8K RUN     44.7H 76.27% idle
   14 root        1 -44    -     0K     8K WAIT    16:30 14.65% swi1: net
 1277 verlihub    1   8    0 12916K  5780K nanslp  69:52  2.00% verlihub
 1028 root        1   8    0  3104K   504K nanslp  55:25  1.42% monitord
   27 root        1 -68    -     0K     8K -      187:25  0.39% dummynet
  • l — скрыть/показать строку средней загрузки.
  • t — скрыть/показать строку состояния процессоров.
  • m — скрыть/показать строки 4 и 5 с данными о состоянии памяти.
  • -S — показать системные процессы (pager, swapper и др.).

Состояния процессора

  • us — (User CPU time) время, затраченное на процессы пользователей
  • sy — (System CPU time) время, затраченное на процессы ядра
  • ni — (Nice CPU time) время процессов с изменённым приоритетом
  • id — простой процессора
  • wa — (iowait) ожидание операций ввода-вывода
  • hi — (Hardware IRQ) аппаратные прерывания
  • si — (Software IRQ) программные прерывания (например, сетевые)
  • st — (Steal Time) время, «украденное» гипервизором у данной виртуальной машины в пользу других

История

Программа top была создана по образцу аналогичной программы для VMS. В апреле 1984 года студент университета Райса Уильям ЛеФевр написал первую такую программу для BSD 4.1, и выпустил её под лицензией BSD. Благодаря этому, top вошёл в состав множества проприетарных систем на базе BSD и UNIX.

Top неоднократно портировался под разные операционные системы и выпускался на различных условиях. В AIX 4.3 в 1999 году появился аналог под названием topas.

Первую версию top написал Роджер Биннс. В современных дистрибутивах GNU/Linux обычно используют top, написанный С. Варнером и входящий в пакет procps.

Примечания

  1. procps (ps, top, vmstat, pgrep, w...) (англ.). sitename. Дата обращения: 3 октября 2025. Архивировано 10 июля 2025 года.

Ссылки