Про команду top

Помню, когда у нас в университете была дисциплина под названием «Операционные системы», первая лабораторная была связана с ознакомлением процессов в ОС Ununtu. Преподаватель расхваливал нам Убунту (на тот момент релизом была восьмая версия), говорил, что это очень чудная ОС, которая установилась даже на его старенький лаптоп. Список процессов мы смотрели через команду top.

С командой top придется столкнуться, наверно, всем, кто постигает азы администрирования линуксом. При вводе в консоли команды top, на экран выводится информативная таблица, которая обновляется каждые 2 секунды (по умолчанию, процессы сортируются по проценту использования процессорного времени). Ниже приводится описание столбцов, для чего они нужны и что показывают.

Вывод информации о процессах через команду top
  • PID (process ID) — идентификатор процесса.
  • USER — пользователь, от которого запущен данный процесс (root — суперпользователь).
  • PR — текущий приоритет процесса. Чем меньше цифра, тем выше приоритет.
  • NI — приоритет, который можно выставить командой nice. Может быть от −20 (наивысший приоритет) до 19.
  • VIRT — общее количество виртуальной памяти, используемой программой (в килобайтах).
  • RES — текущее использование оперативной памяти.
  • SHR — количество разделяемой (shared) памяти программы (в килобайтах).
  • S — состояние процесса. Может быть:
    • D — состояние ожидания;
    • R — процесс выполняется процессором или стоит в очереди на выполнение;
    • S — состояние «сна»;
    • T — выполнение процесса приостановлено;
    • Z — состояние «зомби».
  • %CPU — процент доступного времени процессора, которое использовала запущенная программа.
  • %MEM — процент доступной памяти, которое использовала запущенная программа.
  • COMMAND — название команды, под которой работает процесс.

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

  • Загрузка системы (первая строка):
    • текущее время;
    • up time — время работы системы после включения питания;
    • user — количество пользователей, которые в данный момент работают в системе;
    • load average — средняя загрузка системы  (минута, пять минут и пятнадцать минут назад).
  • Процессы (вторая строка):
    • total — общее количество процессов в системе;
    • running — количество процессов, выполняемых процессором или стоящих в очереди на выполнение;
    • sleeping — количество процессов, ожидающих какого-либо события ввода-вывода;
    • stoped — количество приостановленных процессов;
    • zombie — количество процессов, находящихся в состоянии «зомби».
  • Состояние процессора (третья строка):
    • us — процент использования процессорного времени программами пользователей;
    • sy — процент использования процессорного времени процессами ядра Linux;
    • ni — процент использования процессорного времени программами с измененным приоритетом;
    • id — простой процессора;
    • hi — процент времени, которое процессор тратит на обработку прерываний на уровне железа (IRQ);
    • si — то же, что и hi, только для софт-прерываний;
    • st — процент «уворованного» времени.
  • Использование оперативной памяти (четвертая строка):
    • total — общее количество оперативной памяти;
    • used — количество использованной оперативной памяти;
    • free — количество свободной оперативной памяти.
  • Использование swap-пространства (пятая строка):
    • total — общее количество swap-пространства;
    • used — количество использованного swap-пространства;
    • free — количество свободного swap-пространства.

Управлять top’ом можно, используя следующие команды:

  • a — переключить количество одновременно выводимых на экран окон (по умолчанию показывается одно окно);
  • d или s — установить значение задержки перерисовки экрана (по умолчанию 3 секунды);
  • l — включение/выключение поля «средняя загрузка системы» в заголовке;
  • t —  включение/выключение полей описания процессов и загрузки процессора в заголовке;
  • m — включение/выключение полей, описывающих использование оперативной памяти и файла подкачки;.
  • b — включение процессов, выполняемых процессором (состояние Run);
  • c — включение/выключает отображение имени программы/полной командной строки в поле COMMAND;
  • i — включение отображение только процессов, выполняемым процессором, или всех процессов системы;
  • x — включение/выключает подсветку колонки, по которой происходит сортировка процессов;
  • z — включение/выключает цвет;
  • u — показать процессы, выполняемые определенным пользователем;
  • k — послать сигнал процессу;
  • r — изменить значение поля nice (приоритет процесса);
  • Пробел — заставить программу перечитать список процессов (т.е. обновить экран).

У команды top есть аналоги, но о них в следующий раз.