zaLinux.ru

Как пользоваться командой top для наблюдения за процессами в Linux


Программа top для показа процессов Linux в реальном времени

Программа top показывает запущенные в Linux процессы программ и служб.

С помощью top можно наблюдать в реальном времени динамику работающей системы. Программа показывает обобщённую информацию по системе, а также список процессов или потоков, обслуживающихся в настоящее время ядром Linux.

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

Пример интерфейса top после настройки:

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

Кстати, у программы top имеется интересный аналог, подробности о нём смотрите в статье «Инструкция по использованию команды htop для интерактивного просмотра процессов в Linux».

Как увидеть запущенные процессы в Linux (аналог менеджера задач Windows)

Чтобы увидеть, какие процессы запущены, выполните:

top

Что означают цифры в top (как понимать вывод top)

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

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

В самой верхней строке показано: текущее время в системе, аптайм (время работы после загрузки), общее количество пользователей и средняя нагрузка за последние 1, 5 и 15 минут.

Далее идут строки с информацией о:

  • задачах
  • процессоре
  • оперативной памяти
  • разделе подкачки

Далее идёт перечень запущенных процессов. По умолчанию выводиться следующая информация:

PID — уникальный идентификатор процесса

USER — имя пользователя, являющегося владельцем задачи

PR — приоритет задачи в расписании. Если вы в этом поле видите «rt», это означает, что задача запущена в расписании приоритетов в реальном времени (это самый высокий приоритет).

NI — значение nice задачи. Негативное значение означает более высокий приоритет, а положительное значение nice означает более низкий приоритет

VIRT — общее количество используемой задачей виртуальной памяти, включает все коды, данные, совместные библиотеки, плюс страницы, которые были перенесены в раздел подкачки, и страницы, которые были размечены, но не используются

RES — используемая оперативная память, является подмножеством VIRT, представляет физическую память, не помещённую в раздел подкачки, которую в текущий момент использует задача. Также является суммой полей RSan, RSfd и Rssh.


SHR — размер совместной памяти, подмножество используемой памяти RES, которая может использоваться другими процессами

S — статус процесса. Может быть:

  • D = бесперебойный сон
  • I = простой (не работает)
  • R = запущен
  • S = спит
  • T = остановлен сигналом управления работой
  • t = остановлен отладчиком во время трассировки
  • Z = зомби

%CPU — использование центрального процессора, доля задачи в потреблённом процессорном времени с момента последнего обновления экрана, выражается в процентах от общего времени CPU

%MEM — доля задачи в использовании памяти (RES)

TIME+ — общее время центрального процессора, которое использовала задача с момента запуска

COMMAND — Имя команды или Строка команды. Показывает строку команды, используемую для запуска задачи или имя ассоциированной программы

Прокрутка окон top

Вы можете прокручивать список процессов вверх и вниз, а также вправо и влево, используя курсорные клавиши (стрелки).

Показ скрытие общей нагрузки/аптайма

Начнём с совсем простого — вы можете убрать либо вернуть верхнюю строку, показывающую нагрузку и аптайм, для этого нажимайте клавишу l.

Переключение в цветной режим

С помощью кнопки z можно переключаться между монохромным и цветным отображением.


Цветовую схему можно настроить, то есть можно установить свои цвета.

Показ загруженности каждого ядра

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

Показ гистограммы загрузки процессора

Кнопка t по кругу переключает вид строки обобщённой информации об использовании процессора. Варианты:

1. детальная информация по категориям

2. сокращённая пользователь/система и общий % + гистограмма

3. Сокращённая пользователь/система и общий % + блок-диаграмма

4. отключение отображения статусов задач и CPU

У меня на сриншоте вместо гистограмм белые области — просто процессор бездействует, в данный момент мало запущенных задач.

Показ гистограммы загрузки памяти

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

1. подробные проценты по типу памяти

2. сокращённый % используемая/общая доступная + гистограмма

3. сокращённый % используемая/общая доступная + блок-диаграмма

4. выключение показа памяти

Использование полужирного выделения

Некоторые данные, например, задачи, потребляющие много процессорного времени, выделяются полужирным. Это поведение по умолчанию. Его можно отключить/включить командой b.

Подсветка столбца, используемого для сортировки

Список процессов показывается не в случайном порядке — он отсортирован по определённому значению. Можно отсортировать по разным столбцам. И если вы забыли, какой столбец используется для сортировки, то нажмите кнопку x и этот столбец будет выделен полужирным. Нажмите x ещё раз, для возврата в исходное состояние.

Показ команды запуска

Вы можете посмотреть строку команды, которой она была запущена (имя программы вместе с опциями командной строки) с помощью кнопки c. Для возврата к показу имени программы, нажмите c ещё раз.

Как посмотреть процессы только определённого пользователя

Используйте кнопку u или U, а затем введите имя пользователя, для которого вы хотите увидеть процессы. Опция -u соответствует только эффективному пользователю, в то время как -U соответствует любому пользователю (реальному, эффективному, сохранённому или файловой системы).

Будут показаны процессы только указанного пользователя или пустой экран — если процессов нет. Перед именем пользователя можно поставить ! (восклицательный знак) и тогда будут показаны процессы для всех пользователей, кроме указанного.


Древовидный вид процессов и дочерних процессов

Используя клавишу V можно переключиться на древовидный вид и обратно. В этом режиме процессы реорганизуются в соответствии с их родителями и столбец COMMAND показывает это дерево.


Большая V означает, что нужно одновременно нажимать Shift+v.

В древовидном виде по-прежнему можно использовать интерактивную команду c для переключения на вид строки команды. Также доступна интерактивная команда H для переключения между процессами и потоками.

Показ только активных процессов

Кнопкой i можно переключаться между всеми или только активными задачами.

Просмотр потоков

По умолчанию top показывает суммарную информацию по всем потокам каждого процесса. Используя H можно переключиться на показ потоков.

Как поменять интервал обновления информации в top

По умолчанию информация обновляется раз в три секунды. Используя интерактивную команду d или s вы можете ввести установить любой другой интервал. После нажатия одной из этих кнопок вам нужно будет ввести значение в секундах. Можно вводить дробные числа, но нельзя вводить отрицательные. Если ввести 0, то программа будет непрерывно обновлять информацию и при этом потреблять много процессорного времени.

Если вы хотите узнать, какое время задержки установлено в текущий момент, нажмите h и во второй строке найдите строку со словом Delay.

Как изменить сортировку процессов / Как отсортировать по используемой памяти

По умолчанию сортировка выполняется по количеству использования центрального процессора — чем больше задача потребляет ресурсов CPU, тем она выше в списке. Если переключиться в режим древовидного просмотра, то это правило не действует. Также можно выполнить сортировку по другим характеристикам процессов. Например, по количеству используемой оперативной памяти.

Для переключения между разными колонками (выбора другой характеристики для сортировки) используйте клавиши < и >. Это не символы курсорных клавишей. Это символы на английской раскладке, которые на русской раскладке находятся на буквах «б» и «ю». Чтобы отправить этот символ, нужно нажать Shift.

Как уже говорилось выше, чтобы увидеть, какой именно столбец используется для сортировки, нажмите x.

Как искать в top

Вы можете выполнять поиск процессов и строк, содержащих определённое значение.

Для этого нажмите L (Shift+l), появится приглашение ввести слово для поиска. Поиск чувствителен к регистру. Нет ограничений на содержимое поисковой строки.

Поиски не ограничены значениями из единичного столбца или колонки. Все величины, показываемые в строках задач, разрешены для поиска по ним. Вы можете включать пробелы, цифры, символы.

Для перехода к следующему совпадению поиска отправьте символ &.

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

Сброс фильтров

Для сброса фильтров используются = и +. Их действия чуть различны, кнопка = действует на текущее видимое окно задач. А кнопка + действует на все окна при альтернативном отображении. Сбрасываются фильтры, установленные с помощью:

  • i (без неактивных задач)
  • n (максимальное число задач)
  • u/U (фильтр по пользователям),
  • o/O (другой фильтр)
  • L (поиск)

Управления полями

Вы можете добавить или удалить поля. Для этого нажмите f или F. Будет открыто новое окно:

В нём выберите интересующее вас поле, для его добавления, нажмите d, для сортировки по выбранному полю, нажмите s.

Многооконный режим top (как в top включить несколько вкладок)

Программа top поддерживает работу с несколькими окнами — до четырёх. Причём в каждом из них можно сделать совершенно разные настройки и наблюдать за различными характеристиками системы.

Многооконный вид top называется альтернативным режимом отображения. Для его включения нажмите A. Чтобы последовательно переключаться между окнами нажимайте a (переход к следующему) или w (возврат к предыдущему). Чтобы узнать, какое именно окно является открытым в данный момент, посмотрите на самую верхнюю строчку (если вы не отключили её кнопкой l) — там будет содержаться номер и название активного окна.

С помощью интерактивной команды g можно быстро переключаться между окнами. После её нажатия нужно будет ввести цифры от 1 до 4. Кстати, команда g работает как в многооконном режиме, так и в режиме одного окра. В последнем случае также происходит переключение на другое окно.

Вы можете установить имя окна (которое отображается в самом верху, для этого используйте команду G. После её отправки вам нужно будет ввести новое имя текущего окна.

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

Как в top сделать 2 или 3 окна вместо четырёх

Возможно, что 4 окна для вас слишком много. Вы можете спрятать некоторые окна и таким образом получить 2 или 3 активных окна. Чтобы спрятать или показать текущее активное окно, используйте кнопку -.

Кнопка _ работает аналогично, но сразу для всех окон.

Пример двухоконного режима, в первом окне я наблюдаю для приложениями, создающими максимальную нагрузку на процессор (сортировка по %CPU, показаны только активные процессы), во втором окне я наблюдаю за приложениями, больше всех потребляющие оперативную память (сортировка по %MEM):

Как остановить процесс через top

Чтобы завершить процесс (процесс), нажмите k. Затем вам нужно будет ввести PID этого процесса и сигнал для отправки (можно оставить значение по умолчанию).

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

Изменение значение nice процесса

Для изменения значения nice процесса нажмите r, вам будет предложен ввести PID и затем значение nice для присвоения ему.

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

Как использовать top в скриптах

Программа top также поддерживает опции командной строки. Большинство из этих опций соответствуют рассмотренным интерактивным командам — но перед ними нужно поставить дефис.

Сама программа top может использоваться в скриптах. Для выполнения команды в этом режиме применяется опции -b. Эта опция полезна для отправки вывода top в другую программу или в файл. В этом режиме top не будет принимать ввод и будет работать до достижения предела повторений, который устанавливается ключом -n. К примеру, запуск команды top в пакетном режиме с одним обновлением информации:

top -b -n 1

Сохранение настроек top

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

Программ напишет, куда именно она сохранила конфигурационный файл. Обычно это файл ~/.config/procps/toprc. То есть, если вы хотите сбросить ваши пользовательские настройки top, то удалите этот файл.

Также смотрите статью Инструкция по использованию команды htop для интерактивного просмотра процессов в Linux.


Рекомендуемые статьи:

2 Комментарии

  1. Jon

    Цитата: "NI — значение nice задачи. Негативное значение означает более высокий приоритет, а положительное значение nice означает более низкий приоритет."

    Что значит "негативное" значение? "более высокий приоритет" над чем? Зачем постить то, что не можете объяснить и не понимаете как это работает?

    1. Alexey (Автор записи)

      Что значит "негативное" значение?

      Негативное это значит отрицательное, то есть меньше нуля, например «-20».

      "более высокий приоритет" над чем?

      Над другими процессами же.

      Приоритет nice — число, указывающее планировщику процессов ядра ОС приоритет, который пользователь хотел бы назначить процессу. (Источник: https://ru.wikipedia.org/wiki/Nice)

      Цитата: "NI — значение nice задачи. Негативное значение означает более высокий приоритет, а положительное значение nice означает более низкий приоритет."

      Оригинал:

      The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability (Источник: man top).

      Возможно, вы сможете извлечь больше смысла из этой фразы.

      что не можете объяснить и не понимаете как это работает?

      У вас искажённое восприятие действительности. Говоря проще, вы заблуждаетесь.

Добавить комментарий для Jon Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *