Управление процессами в Linux

от автора

в

В основе в Linux есть две утилиты для мониторинга процессов :

PS

TOP

Команда ps

Cинтаксис команды:

ps опции

Теперь рассмотрим опции утилиты. Они делятся на два типа — те, которые идут с дефисом Unix и те, которые используются без дефиса — BSD. Заметьте, что при использовании опций BSD, вывод утилиты будет организован в BSD стиле.

  • -A, -e, (a) — выбрать все процессы;
  • -a — выбрать все процессы, кроме фоновых;
  • -d, (g) — выбрать все процессы, даже фоновые, кроме процессов сессий;
  • -N — выбрать все процессы кроме указанных;
  •  — выбирать процессы по имени команды;
  • -G — выбрать процессы по ID группы;
  • -p, (p) — выбрать процессы PID;
  • —ppid — выбрать процессы по PID родительского процесса;
  • -s — выбрать процессы по ID сессии;
  • -t, (t) — выбрать процессы по tty;
  • -u, (U) — выбрать процессы пользователя.

Опции форматирования:

  •  — отображать информацию планировщика;
  • -f — вывести максимум доступных данных, например, количество потоков;
  • -F — аналогично -f, только выводит ещё больше данных;
  • -l — длинный формат вывода;
  • -j, (j) — вывести процессы в стиле Jobs, минимум информации;
  • -M, (Z) — добавить информацию о безопасности;
  • -o, (o) — позволяет определить свой формат вывода;
  • —sort, (k) — выполнять сортировку по указанной колонке;
  • -L, (H)— отображать потоки процессов в колонках LWP и NLWP;
  • -m, (m) — вывести потоки после процесса;
  • -V, (V) — вывести информацию о версии;
  • -H — отображать дерево процессов;

Самые популярные набор это:

  • ps -aux
  • ps -auxf

По умолчанию команда ps показывает таблицу процессов, в которой четыре колонки — PIDTTYTIME и CMD. При использовании опции -f — будут показаны колонки UIDPIDPPIDCSTIMETTYTIME и CMD.

  • UID — пользователь, от имени которого запущен процесс
  • PID — идентификатор процесса
  • PPID — идентификатор родительского процесса
  • C — использование времени процессора в процентах
  • STIME — время запуска процесса
  • TTY — терминал, из которого запущен процесс
  • TIME — общее время процессора, затраченное на выполнение процесса
  • CMD — команда запуска процесса

Опция -F добавит еще три колонки в таблицу процессов

  • SZ — размер процесса в памяти, Кбайт (с учетом swap)
  • RSS — размер процесса в памяти, Кбайт (без учета swap)
  • PSR — ядро процессора, на котором выполняется процесс

Статусы процессов, краткий формат, один символ

  • S (sleeping) — спящий
  • R (running) — в работе
  • Z (zombie) — зомби
  • D (uninterruptible sleep) — в состоянии подкачки из swap
  • T (stopped by job control signal) — остановлен специальным сигналом
  • t (stopped by debugger during trace) — остановлен в процессе дебага
  • I (idle) — бездействующий процесс

Команда top

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

На первой строке:

  • текущее время
  • как долго работает система после последней загрузки
  • сколько в системе активных пользователей
  • средняя загрузка системы за последние 1 и 5 и 15 минут

На второй строке

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

На третьей строке показана информация об использовании CPU

  • us — потребление cpu пользовательскими процессами
  • sy — потребление cpu системными процессами
  • ni — потребление cpu пользовательскими процессами c измененным приоритетом (командой nice или renice)
  • id — простаивание cpu (от idle — работать вхолостую)
  • wa — процент времени, в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Если слишком высокое (более 10), значит за диск не поспевает процессором.
  • hi — процент времени работы аппаратных прерываний. Периферийные устройства могут прерывать работу процессора, чтобы передать какие-то данные.
  • si – процент времени работы программных прерываний. Некоторые приложения могут прерывать работу процессора, чтобы передать какие-то данные.
  • st — процент времени, когда реальный процессор не был доступен виртуальной машине. Будет расти, если виртуальной машине выделить больше ядер, чем имеет гипервизор. Этот показатель имеет значение только в системах виртуализации.

На четвертой и пятой строке показана информация о потреблении оперативной памяти (Mem) и файла подкачки (Swap)

  • total — общее количество памяти
  • free — количество свободной памяти
  • used — количество используемой памяти
  • buff/cache — память, выделенная под буфер и дисковый кэш
  • avail Mem — память, которая может быть выделена для новых процессов

По умолчанию в таблице 12 колонок

  • PID — идентификатор процесса
  • USER — имя пользователя, под которым работает процесс
  • PR — приоритет процесса
  • NI — любезность процесса, чем она выше, тем ниже приоритет
  • VIR — общее количество памяти, которое способен адресовать процесс в данный момент времени. Включает в себя RESSHR, прикреплённые файлы (например — файлы библиотек). Также включает в себя память, которая была выделена, но не использована.
  • RES — количество физической памяти, которую использует процесс
  • SHR — количество разделяемой памяти, которую использует процесс. Разделяемая память может быть разделена с другими процессами.
  • S — состояние процесса
  • S (sleeping) — спящий
  • R (running) — в работе
  • Z (zombie) — зомби
  • D (uninterruptible sleep) — ожидает дискового ввода/вывода, и не принимает никакие сигналы
  • T (stopped by job control signal) — остановлен специальным сигналом
  • t (stopped by debugger during trace) — остановлен в процессе дебага
  • I (Idle) — бездействующий процесс
  • %CPU — использование cpu в процентах
  • %MEM — RES в процентах от общего количества памяти
  • TIME+ — сколько времени с этим процессом работал ЦПУ, с точностью до сотых долей секунды
  • COMMAND — с помощью какой команды запустили процесс

Сортировка списка процессов

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

  • M — для сортировки по использованию памяти
  • P — для сортировки по использованию CPU
  • N — для сортировки по идентификатору процесса
  • T — для сортировки по времени работы

По умолчанию результаты отображаются в порядке убывания, однако можно отсортировать в порядке возрастания с помощью команды R. Подсветить текущее поле сортировки таблицы можно с помощью команды x. Подсветить процессы, у которых поле S таблицы имеет значение R (running) можно с помощью команды y.

Представление общей информации

С помощью команд ltm можно переключать по кругу представление строк общей информации

  • команда lload avg — показать или скрыть первую строку
  • команд t, задачи и процессор — показать, скрыть, изменить представление для CPU
  • команд m, память и файл подкачки — показать, скрыть, изменить представление

Есть много команд, которые позволяют изменить представление таблицы процессов.

  • команда c — переключатель, показывать/скрывать полный путь к командам
  • команда i — переключатель, показывать/скрывать неактивные задачи
  • команда V — переключатель, показывать/скрывать дерево процессов
  • команда S — переключатель, показывать/скрывать использованное процессорное время не только самого процесса, но и всех его дочерних процессов, которые уже отработали и умерли

Фильтрация строк таблицы

Команда u или U позволят указать пользователя, процессы которого нужно показать. Команда o или O позволяет указать поле и значение для фильтрации строк таблицы , сбросить все фильтры команда = .

Поиск в таблице процессов

Команда L позволяет ввести строку для поиска, команда & (не забывайте Shift) позволяет перейти к следующему найденному совпадению. Отменить поиск можно с помощью команды =.

Завершение процессов

Для этого предназначена команда k — будет предложено сначала ввести PID процесса, а потом — сигнал, который нужно ему отправить. Если оставить поле сигнала пустым — будет использоваться SIGTERM. Чтобы принудительно убить процесс — можно отправить SIGKILL. Также можно использовать номер сигнала — для SIGTERM номер равен 15, для SIGKILL номер равен 9.

Комментарии

Добавить комментарий

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

Аватар пользователя yuliaadmin

Об авторе


Поиск по сайту


Полезные ссылки

Ссылки, которые я считаю полезными и хочу поделиться.