Автор Тема: top - монитор процессов  (Прочитано 5814 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Пользователь.

  • Редактор раздела
  • *****
  • Автор темы
  • Сообщений: 4613
top - монитор процессов
« : Июнь 12, 2013, 15:42:03 »
top - консольная программа для просмотра информации о запущенных процессах.

Эта программа установлена по умолчанию во многих операционных системах Linux. Но для справки укажу, что в Ubuntu она содержится в deb пакете procps.

Для просмотра информации о запущенных процессах необходимо выполнить в терминале команду:
top
Получим примерно такой вывод:
top - 12:08:46 up  5:00,  1 user,  load average: 0.16, 0.20, 0.22
Tasks: 111 total,   1 running, 109 sleeping,   0 stopped,   1 zombie
Cpu(s): 13.6%us,  2.5%sy,  0.0%ni, 83.1%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1026884k total,   900712k used,   126172k free,    34308k buffers
Swap:  1464316k total,        0k used,  1464316k free,   470784k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 3679 bismark   20   0  179m  27m  13m S  5.9  2.7   8:01.11 deadbeef-main      
 3824 root      20   0     0    0    0 S  2.0  0.0   0:00.06 flush-8:0          
    1 root      20   0  3532 1872 1276 S  0.0  0.2   0:00.61 init              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd          
    3 root      20   0     0    0    0 S  0.0  0.0   0:02.65 ksoftirqd/0        
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0        
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.07 watchdog/0        
    8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset            
    9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper            
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kdevtmpfs          

Для выхода нажать клавишу Q или Ctrl+C.


Рассмотрим значение этих данных:

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

Вторая строка (Tasks):
total - количество запущенных процессов
running - количество активных процессов
sleeping - количество не активных процессов
stopped - количество остановленных процессов
zombie - количество процессов ожидающих завершение

Третья строка (Cpu):
us - процент  использования  процессора  программами пользователей
sy - процент  использования  процессора системными процессами
ni - процент  использования  процессора процессами с с измененным приоритетом через nice
id - простой процессора
wa - процент  использования  процессора процессами ожидающими ввода вывода
hi - процент  использования  процессора обработчиками аппаратных прерываний
si - процент  использования  процессора обработчиками программных прерываний
st - при работе в виртуальной машине процент заимствованных ресурсов для выполнения других задач, например для запуска виртуальной машины

В сумме значения этой строки должны равняться 100%

Четвертая строка (Mem):
total - вся оперативная память
used - использовано
free - свободно
buffers - буферы
cached - кэши (находится в 5 строке, но это относится к оперативной памяти)

Пятая строка (Swap):
total - весь swap
used - использовано
free - свободно

Шестая строка (в которой пусто):
Строка сообщений и ввода данных

Седьмая строка (заголовки столбцов):
PID - идентификатор процесса
USER - пользователь запустивший процесс
PR - приоритет процесса
NI - значение NICE, влияет на приоритет процесса
VIRT - виртуальная память (память выделенная ядром процессу, но она может быть использована не вся)
RES - резидентная память (память использованная процессом, в том числе разделяемая память и swap)
SHR - разделяемая память (память которая одновременно используется несколькими процессами)
S - статус процесса
%CPU - процент использования процессора
%MEM - процент использования оперативной памяти
TIME+ - время работы процесса
COMMAND - название программы/команда запустившая процесс


Горячие клавиши:
k - убить процесс, нужно будет затем указать PID и нажать энтер пару раз
Enter или пробел - обновить информацию
h - вызов справки
Shift+W - сохранить настройки в конфигурационный файл

Сортировка:
Shift+M - сортировка по колонке %MEM
Shift+N - сортировка по колонке PID
Shift+P - сортировка по колонке %CPU
Shift+T - сортировка по колонке TIME+
Shift+R - обратная сортировка по выбранной колонке
Shift+F или Shift+O - настройка сортировки, нажмите букву указанную возле названия колонки

Внешний вид:
l - скрыть строку с load average
m - скрыть строки с информацией о памяти
t - скрыть строки с информацией о процессоре
1 (это цифра) - общая статистика по процессорам или отдельно информация по каждому процессору
с - показать команду вместо названия программы
f - выбор отображаемых колонок, нажмите букву указанную возле названия колонки
o - перемещение колонок, нажимайте букву колонки для перемещения вправо или Shift+буква колонки для перемещения влево
x - выделить колонку по которой сделана сортировка
y - выделить строку с активными процессами
b - жирное выделение для x или y
z - включить/отключить цветное отображение

Shift+Z - настройка цветового отображения, вверху показан предпросмотр выбранных цветов, ниже сам выбор, подробнее смотрите ниже


Цвета можно выбрать для каждого блока отдельно, то есть выбираем блок и указываем цвет, затем выбираем следующий блок и цвет и т.д.

Клавиши для выбора блоков:
Shift+S - блок общей информации (1-5 строка)
Shift+M - строка сообщений
Shift+H - названия колонок
Shift+T - информация о процессах

Клавиши для выбора цвета:
0 - черный
1 - красный
2 - зеленый
3 - желтый
4 - синий
5 - пурпурный
6 - голубой
7 - белый

Или можно выбрать уже настроенные профили:
a или w - выбор профилей в которых настроены цвета и колонки

q - отмена изменений
Enter - применить изменения и закрыть настройку цветового отображения


Параметры запуска программы:
-b  режим для выгрузки в текстовый файл, например:
выгрузить информацию по всем процессам в текстовый файл: top -b -n 1 >top.txt
выгрузить информацию по одному процессу в текстовый файл: top -b -n 1 -p 1 >top.txt
-d  интервал обновления информации указывается секунды и доли секунд, пример: top -d 3.25
-n  количество обновлений информации, пример: top -n 1
-u  показать процессы одного пользователя, например:
показать процессы с указанием имени вашего пользователя: top -u user
показать процессы пользователя root: top -u root
-p  показать информацию по указанным PID (идентификаторам процессов), пример: top -p 1,2,3


Также смотрите руководство к программе: man top


Дополнительно:
Использованная оперативная память показана в колонке RES (резидентная память).

Но стоит учитывать что top и gnome-system-monitor считают по разному использованную память у одного процесса, а сумму использованной всеми процессами памяти считают одинаково.

top складывает неразделяемую память и разделяемую память, которые использует процесс (не учитывает, что разделяемую память используют несколько процессов, поэтому одна и та же память плюсуется к нескольким процессам)

gnome-system-monitor складывает неразделяемую память и часть от разделяемой (разделяемую память используют несколько процессов одновременно, поэтому программа ее делит пропорционально между процессами использующими ее)

Раз неразделяемую они считаю одинаково, а разделяемая память в gnome-system-monitor после распределения у каждого процесса составляет небольшой объем, делаем вывод:

Разница значений top RES - SHR примерно равна значению использованной памяти в gnome-system-monitor, но это сработает не для всех процессов (у некоторых процессов разделяемая память занимает большой размер).
« Последнее редактирование: Июль 01, 2013, 14:48:45 от Пользователь. »

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
Re: top - монитор процессов
« Ответ #1 : Июнь 13, 2013, 10:11:53 »

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

Оффлайн Пользователь.

  • Редактор раздела
  • *****
  • Автор темы
  • Сообщений: 4613
Re: top - монитор процессов
« Ответ #2 : Июнь 19, 2013, 15:12:42 »
Дописал что хотел, если есть недочеты пишите.