top (таблица процессов) — это диспетчер задач или программа системного монитора , встречающаяся во многих Unix-подобных операционных системах, которая отображает информацию об использовании ЦП и памяти.
Программа создает упорядоченный список запущенных процессов, выбранных по указанным пользователем критериям, и периодически его обновляет. По умолчанию сортировка осуществляется по использованию ЦП, и отображаются только самые активные потребители ЦП. top показывает, сколько вычислительной мощности и памяти используется, а также другую информацию о запущенных процессах. Некоторые версии top позволяют выполнять расширенную настройку отображения, например, выбор столбцов или метода сортировки. top полезен для системных администраторов , поскольку он показывает, какие пользователи и процессы потребляют больше всего системных ресурсов в любой момент времени.
Существует несколько различных версий top. Традиционная версия Unix была написана Уильямом Лефевром и изначально защищена авторским правом в 1984 году. [1] Она размещена на SourceForge , [2] а выпуск 3.7 был анонсирован в 2008 году. [3]
Версия top для Linux является частью группы инструментов procps-ng. Первоначально она была написана Роджером Биннсом [4] и выпущена в начале 1992 года, но вскоре после этого была перенята другими. [5]
На Solaris примерно эквивалентной программой является prstat. В Microsoft Windows есть команда tasklist и графическая утилита Task Manager . В IBM AIX есть обновляемый список запущенных процессов как часть команд topas и topas_nmon .
Средние числа загрузки в Linux относятся к сумме числа процессов, ожидающих в очереди выполнения, плюс число, выполняемое в данный момент. Число является абсолютным, а не относительным. И, таким образом, оно может быть неограниченным ; в отличие от утилизации. Мгновенные изменения числа процессов демпфируются с помощью формулы экспоненциального затухания , которая рассчитывается с использованием математики с фиксированной точкой . [6]
Программа ps похожа на top, но вместо этого создает снимок процессов, сделанный во время вызова. Параметр n (количество итераций) программы top может дать аналогичный результат, заставляя программу выполнить указанное количество итераций, а затем завершить работу после вывода вывода.
Первые 5 строк дают обзор всей системы.
вверх - 14:21:23 вверх 2 дня, 21:40, 44 пользователя, средняя загрузка: 14.44, 14.13, 14.64 | | | | <время> <время работы системы> <количество пользователей> <средняя нагрузка за последние 1, 5, 15 минут>Задания: всего 1552, 8 работающих, 1544 спящих, 0 остановленных, 0 зомби%Cpu(s): 9.6 us, 0.7 sy, 0.0 ni, 89.5 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st | | | | | | | '------. <пользователь> <система> <хорошо> <бездействие> <IOWait> <аппаратное/программное прерывание> <время кражи>MiB Mem: 1031911.+всего, 368915.2 свободно, 172285.0 использовано, 490711.5 бафф/кэшMiB Swap: всего 2048,0, свободно 2048,0, использовано 0,0. Доступно 807110,1 Mem
load average
это экспоненциальное скользящее среднее длины очереди выполнения за последние 1/5/15 минут. Очередь выполнения включает как запущенные, так и ожидающие запуска процессы. При полной загрузке без переключения задач средняя загрузка равна количеству ЦП. [7]
Tasks
подсчитывает процессы и их статусы.
%Cpu(s)
подсчитывает процент использования ЦП, разбитый по категориям.
MiB Mem
: Использование памяти в единицах мебибайт . buff/cache
Для памяти, используемой буферами и кэшем .
MiB Swap
: Использование пространства подкачки в единицах мебибайт . Если системе требуется больше ресурсов памяти, а ОЗУ заполнено, неактивные страницы в памяти перемещаются в пространство подкачки. В этом снимке всего 2048 МБ подкачки, все свободны, что указывает на отсутствие подкачки, что хорошо для производительности.
avail Mem
: Объем памяти, доступной для новых приложений, без подкачки. При этом учитывается не только неиспользуемая оперативная память, но и память, которая может быть восстановлена из кэшей оперативной памяти.
Остальная часть текста представляет собой таблицу, в которой каждая строка представляет собой процесс , а из множества возможных столбцов часто используются следующие (выбор и порядок столбцов можно настраивать): [8]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ КОМАНДА 1 корень 20 0 2456 1612 1500 S 0.0 0.0 0:00.07 инициализация(Ubuntu) 4 корень 20 0 2456 4 0 S 0.0 0.0 0:00.00 инициализация 656403 пользователь2 20 0 80,0 г 3,6 г 370000 S 100,0 0,4 1594:38 python32024198 longnam+ 20 0 50,5 г 4,7 г 609200 S 1,6 0,5 204:46,85 длинное-имя-процедура2056804 longnam+ 20 0 237,1 г 31,1 г 23,1 г S 136,8 3,1 69:54,11 python3
PID
: Идентификатор процесса , уникальный номер, идентифицирующий каждый запущенный процесс.USER
: Пользователь , который начал процесс. Если имя пользователя слишком длинное, оно обрезается с помощью a +
в конце.PR
: Приоритет задачи в реальном времени , вычисляемый системным планировщиком. Более низкие значения PR считаются более важными планировщиком и с большей вероятностью будут запланированы, что означает, что у него будет больше процессорного времени в реальном времени.NI
: Степень любезности задачи, вручную устанавливаемая пользователями и администраторами для влияния на приоритет в реальном времени. Более низкое значение любезности, как правило, благоприятствует процессу, а более высокое значение любезности, как правило, не благоприятствует процессу. Диапазон составляет от -20 (наиболее благоприятный) до 19 (наименее благоприятный).VIRT
: Размер виртуальной памяти процесса. Сюда входит вся память, к которой процесс может получить доступ, включая память, которая выгружена, память, которая выделена, но не используется, и разделяемая память.RES
: Размер резидентного набора , часть памяти процесса, которая хранится в ОЗУ. По сравнению с VIRT
, это исключает память, которая выгружена, еще не используется или совместно используется.SHR
: Размер разделяемой памяти : какая часть оперативной памяти, затребованная процессом, может использоваться совместно с другими процессами.S
: Статус процесса. Статус может быть:R
для бегаS
для снаI
для холостого ходаD
для сна диска (непрерываемый)Z
для зомби (завершен, но не уничтожен родителем)T
для остановки сигналом управления заданием или t
для остановки отладчиком во время трассировки .%CPU
: Процент процессорного времени, которое процесс использует в данный момент.%MEM
: Процент физической оперативной памяти, используемой процессом.TIME+
: Общее время ЦП, которое задача использовала с момента запуска. Это показано в minutes:seconds
. Знак плюс в TIME+
означает, что точность составляет 0,01 секунды. Если он отображается TIME
, то точность составляет 1 секунду.COMMAND
: Аргумент командной строки, который запустил процесс. В отличие от USER
, если команда слишком длинная, она обрезается без a +
в конце.top
.