top (таблица процессов) — это диспетчер задач или программа системного мониторинга , встречающаяся во многих Unix-подобных операционных системах и отображающая информацию об использовании процессора и памяти.
Программа формирует упорядоченный список запущенных процессов, выбранных по заданным пользователем критериям, и периодически обновляет его. По умолчанию порядок сортируется по использованию ЦП, показаны только самые популярные потребители ЦП. top показывает, сколько вычислительной мощности и памяти используется, а также другую информацию о запущенных процессах. Некоторые версии top допускают обширную настройку отображения, например выбор столбцов или метода сортировки. top полезен системным администраторам , так как показывает, какие пользователи и процессы потребляют больше всего системных ресурсов в любой момент времени.
Существует несколько различных версий топа. Традиционная версия Unix была написана Уильямом ЛеФевром и первоначально защищена авторскими правами в 1984 году. [1] Она размещена на SourceForge , [2] и версия 3.7 была анонсирована в 2008 году. [3]
Версия top для Linux является частью группы инструментов procps-ng. Первоначально он был написан Роджером Биннсом [4] и выпущен в начале 1992 года, но вскоре после этого его переняли другие. [5]
В Solaris примерно эквивалентной программой является prstat. В Microsoft Windows есть команда списка задач и графическая утилита диспетчера задач . В IBM AIX имеется обновляемый список запущенных процессов с помощью команд topas и topas_nmon .
Среднее значение нагрузки в Linux представляет собой сумму количества процессов, ожидающих в очереди выполнения, плюс число выполняющихся в данный момент. Число абсолютное, а не относительное. И, таким образом, оно может быть неограниченным ; в отличие от утилизации. Мгновенные изменения числа процессов демпфируются с помощью формулы экспоненциального затухания , которая рассчитывается с использованием математических вычислений с фиксированной точкой . [6]
Программа ps аналогична программе top, но вместо этого создает снимок процессов, сделанный во время вызова. Опция top n (количество итераций) может дать аналогичный результат, заставляя программу выполнить указанное количество итераций, а затем выйти после печати вывода.
Первые 5 строк отображают всю систему.
вверху - 14:21:23 за 2 дня, 21:40, 44 пользователя, средняя загрузка: 14.44, 14.13, 14.64 | | | | <время> <время работы системы> <количество пользователей> <средняя нагрузка за последние 1, 5, 15 минут>Заданий: всего 1552, 8 бегут, 1544 спят, 0 остановлены, 0 зомби.% ЦП: 9,6 мкс, 0,7 си, 0,0 ни, 89,5 идентификатора, 0,0 ва, 0,0 привет, 0,2 си, 0,0 ст. | | | | | | | '------. <пользователь> <система> <nice> <idle> <IOWait> <аппаратное/программное прерывание> <время кражи>MiB Mem: 1031911.+всего, 368915.2 бесплатно, 172285.0 использовано, 490711.5 бафф/кэшЗамена MiB: всего 2048,0, 2048,0 бесплатно, 0,0 использовано. 807110.1 использовать память
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 С 0,0 0,0 0:00.07 инициализация (Ubuntu) 4 корень 20 0 2456 4 0 S 0,0 0,0 0:00,00 инициализация 656403 user2 20 0 80,0 г 3,6 г 370000 S 100,0 0,4 1594:38 python32024198 longnam+ 20 0 50.5g 4.7g 609200 S 1.6 0.5 204:46.85 long-name-proc2056804 longnam+ 20 0 237.1g 31.1g 23.1g S 136.8 3.1 69:54.11 python3
PID
: Идентификатор процесса , уникальный номер, идентифицирующий каждый запущенный процесс.USER
: Пользователь , запустивший процесс. Если имя пользователя слишком длинное, оно обрезается знаком +
в конце.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
, если команда слишком длинная, она обрезается без знака +
в конце.top
.