[ Содержание ]
Описание
Программа top позволяет увидеть динамически обновляющийся список процессов. Также, она показывает суммарную информацию о загрузке системы.
top -hv top -bcisS -d задержка -n повтор -p PID [,PID ...]
Top — интерактивная программа, и после запуска полностью занимает терминал. Во время работы программы доступны различные команды, но в первую очередь следует запомнить две из них:
- h — выводит экран помощи,
- q — выход из программы.
По умолчанию top отображает на экране следующую информацию:
top - 15:36:31 up 24 min, 1 user, load average: 0.23, 0.19, 0.20 Tasks: 69 total, 2 running, 67 sleeping, 0 stopped, 0 zombie Cpu(s): 9.5% us, 2.6% sy, 0.0% ni, 76.7% id, 11.2% wa, 0.0% hi, 0.0% si Mem: 246832k total, 233356k used, 13476k free, 6920k buffers Swap: 514072k total, 8k used, 514064k free, 110696k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4034 root 15 0 149m 17m 2092 S 4.0 7.1 0:54.95 X 1 root 16 0 672 236 200 S 0.0 0.1 0:00.14 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 7 root 10 -5 0 0 0 S 0.0 0.0 0:00.06 kacpid 100 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 kblockd/0 143 root 15 0 0 0 0 S 0.0 0.0 0:00.00 pdflush 144 root 15 0 0 0 0 S 0.0 0.0 0:00.00 pdflush 103 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khubd 145 root 15 0 0 0 0 S 0.0 0.0 0:00.07 kswapd0 146 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0 147 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 xfslogd/0
Как видно из примера, вывод программы делится на три части:
- заголовок с суммарной информацией о загрузке системы,
- строка ввода (в данный момент пустая),
- отсортированный список процессов.
В заголовке отображается следующая информация:
- Первая строка — загрузка системы.
- Текущее время.
- Время работы системы после включения питания (up time).
- Количество пользователей, которые в данный момент работают в системе.
- Средняя загрузка системы (load average) минуту, пять минут и пятнадцать минут назад.
- Вторая строка — процессы.
- total — общее количество процессов в системе.
- running — количество процессов, выполняемых процессором или стоящих в очереди на выполнение.
- sleeping — количество процессов, ожидающих какого-либо события ввода-вывода.
- stoped — количество приостановленных процессов.
- zombie — количество процессов, находящихся в состоянии «зомби» (подробнее о зомби будет рассказано ниже).
- Третья строка — состояние процессора.
- us — процент использования процессорного времени программами пользователей.
- sy — процент использования процессорного времени процессами ядра Linux.
- ni — процент использования процессорного времени программами с измененным приоритетом.
- id — простой процессора.
- Четвертая строка — использование оперативной памяти.
- total — общее количество оперативной памяти.
- used — количество использованной оперативной памяти.
- free — количество свободной оперативной памяти.
- Пятая строка — использование swap-пространства.
- total — общее количество swap-пространства.
- used — количество использованного swap-пространства.
- free — количество свободного swap-пространства.
В списке процессов по умолчанию показаны следующие столбцы:
- PID — PID процесса.
- USER — пользователь, с правами которого выполняется процесс.
- PR — приоритет процесса.
- NI — на сколько больше или меньше процесс «нравится» (от слова nice) системе. То есть на сколько был изменен приоритет процесса.
- VIRT — общее количество виртуальной памяти, используемой программой. Значение в килобайтах.
- RES — количество резидентной (не перемещаемой в swap) памяти в килобайтах.
- SHR — количество разделяемой (shared) памяти программы в килобайтах.
- S — состояние процесса:
- D — uninterruptible sleep.
- R — процесс выполняется процессором или стоит в очереди на выполнение.
- S — процесс ожидает событие ввода-вывода.
- T — выполнение процесса приостановлено.
- Z — состояние «зомби».
Команды
Теперь рассмотрим, какие команды поддерживает top.
Команда | Описание |
А | Переключает количество одновременно выводимых на экран окон. По умолчанию показано одно окно. |
d или s | Устанавливает значение задержки перерисовки экрана. Значение по умолчанию 3 секунды. |
l | Включение/выключение поля «средняя загрузка системы» в заголовке. |
t | Включение/выключение полей описания процессов и загрузки процессора в заголовке. |
m | Включение/выключение полей, описывающих использование оперативной памяти и файла подкачки. |
b | Выделение процессов, выполняемых процессором (состояние Run). |
c | Включает/выключает отображение имени программы/полной командной строки в поле COMMAND. |
i | Включает отображение только процессов, выполняемым процессором, или всех процессов системы. |
x | Включает/выключает подсветку колонки, по которой происходит сортировка процессов. |
z | Включает/выключает цвет. |
Пробел | Заставляет программу перечитать список процессов. |
u | Показывает процессы, выполняемые определенным пользователем. |
k | Послать сигнал процессу. |
r | Изменить значение поля nice (приоритет процесса). |
Использовать top в интерактивном режиме достаточно просто. Например, необходимо посмотреть процессы только одного пользователя. Для этого во время работы программы достаточно нажать на клавишу u:
top - 14:42:02 up 2:24, 2 users, load average: 0.10, 0.22, 0.12 Tasks: 72 total, 4 running, 68 sleeping, 0 stopped, 0 zombie Cpu(s): 0.5% us, 0.0% sy, 0.0% ni, 99.5% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 241372k used, 5460k free, 2444k buffers Swap: 514072k total, 0k used, 514072k free, 94152k cached Which user (blank for all): PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 16 0 668 236 200 S 0.0 0.1 0:00.15 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
В появившейся строке ввести учетную запись интересующего пользователя и нажать Enter.
top - 14:42:02 up 2:24, 2 users, load average: 0.10, 0.22, 0.12 Tasks: 72 total, 4 running, 68 sleeping, 0 stopped, 0 zombie Cpu(s): 0.5% us, 0.0% sy, 0.0% ni, 99.5% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 241372k used, 5460k free, 2444k buffers Swap: 514072k total, 0k used, 514072k free, 94152k cached Which user (blank for all): user1 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 16 0 668 236 200 S 0.0 0.1 0:00.15 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper 5 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
В результате, будут показаны процессы, выполняемые с правами пользователя user1.
top - 14:44:14 up 2:26, 2 users, load average: 0.19, 0.18, 0.11 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s): 3.0% us, 3.0% sy, 0.0% ni, 93.9% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 242836k used, 3996k free, 2572k buffers Swap: 514072k total, 0k used, 514072k free, 94316k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4357 user1 15 0 3352 1968 1196 S 0.0 0.8 0:00.02 bash 4809 user1 16 0 4196 1880 1412 S 0.0 0.8 0:00.01 mc 4811 user1 18 0 3340 1928 1164 S 0.0 0.8 0:00.01 bash
Для того, чтобы увидеть процессы всех пользователей, необходимо опять ввести команду u и нажать на Enter, не вводя имени учетной записи пользователя.
Находясь в top, Вы можете послать сигнал интересующему Вас процессу. Например, необходимо завершить работу программы mc, работающей с правами пользователя user1. В top вводим команду k.
top - 14:48:47 up 2:30, 2 users, load average: 0.00, 0.06, 0.07 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s): 3.0% us, 0.7% sy, 0.0% ni, 96.3% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 243096k used, 3736k free, 2992k buffers Swap: 514072k total, 0k used, 514072k free, 93792k cached PID to kill: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4357 user1 15 0 3352 1968 1196 S 0.0 0.8 0:00.02 bash 4809 user1 16 0 4196 1880 1412 S 0.0 0.8 0:00.01 mc 4811 user1 18 0 3340 1928 1164 S 0.0 0.8 0:00.01 bash
В появившемся приглашении вводим PID процесса.
top - 14:48:47 up 2:30, 2 users, load average: 0.00, 0.06, 0.07 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s): 3.0% us, 0.7% sy, 0.0% ni, 96.3% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 243096k used, 3736k free, 2992k buffers Swap: 514072k total, 0k used, 514072k free, 93792k cached PID to kill: 4809 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4357 user1 15 0 3352 1968 1196 S 0.0 0.8 0:00.02 bash 4809 user1 16 0 4196 1880 1412 S 0.0 0.8 0:00.01 mc 4811 user1 18 0 3340 1928 1164 S 0.0 0.8 0:00.01 bash
И нажимаем Enter. Появляется предложение указать номер сигнала.
top - 14:48:47 up 2:30, 2 users, load average: 0.00, 0.06, 0.07 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s): 3.0% us, 0.7% sy, 0.0% ni, 96.3% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 243096k used, 3736k free, 2992k buffers Swap: 514072k total, 0k used, 514072k free, 93792k cached Kill PID 4809 with signal [15]: 9 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4357 user1 15 0 3352 1968 1196 S 0.0 0.8 0:00.02 bash 4809 user1 16 0 4196 1880 1412 S 0.0 0.8 0:00.01 mc 4811 user1 18 0 3340 1928 1164 S 0.0 0.8 0:00.01 bash
Если явно не указать номер, будет послан 15-й сигнал. Поскольку этот сигнал будет проигнорирован программой, пошлем ей сигнал 9. То есть введем число 9 и нажмем Enter.
top - 14:53:40 up 2:35, 2 users, load average: 0.00, 0.02, 0.05 Tasks: 73 total, 1 running, 72 sleeping, 0 stopped, 0 zombie Cpu(s): 2.7% us, 0.3% sy, 0.0% ni, 97.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 246832k total, 242068k used, 4764k free, 3216k buffers Swap: 514072k total, 0k used, 514072k free, 93280k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4357 user1 16 0 3352 1976 1200 S 0.0 0.8 0:00.02 bash
Посылать сигнал программе может только пользователь, с правами которого выполняется программа, или пользователь root.
Batch-режим
Кроме интерактивного режима, в котором top выводит данные на экран, можно использовать так называемый командный режим (Batch mode). Он применяется, когда результаты работы программы необходимо передать другим программам или сохранить в файле.
Для запуска программы в командном режиме используют параметр –b. В этом случае список отсортированных процессов (по умолчанию, процессы сортируются по проценту использования процессорного времени) будет с определенной задержкой (по умолчанию три секунды) выводится на стандартный вывод. Количество повторов не ограничено, поэтому необходимо явно завершать работу программы, например, при помощь комбинации клавиш Ctrl+C.
Рассмотрим некоторые параметры, которые можно применять в командном режиме программы top.
- –n — количество повторов.
- –d — задержка между повторами в секундах.
- –u — определяет пользователя, с правами которого выполняются процессы.
- –p — определяет PID процессов, за которыми должна следить программа.
Например, необходимо с задержкой в четыре секунды два раза получить список процессов, выполняемых с правами пользователя daemon. Для этого программу запускают со следующими параметрами:
$ top -b -d 4 -n 3 -u daemon top - 17:28:22 up 34 min, 1 user, load average: 0.15, 0.05, 0.03 Tasks: 66 total, 1 running, 65 sleeping, 0 stopped, 0 zombie Cpu(s): 2.1% us, 0.6% sy, 0.0% ni, 91.7% id, 5.5% wa, 0.1% hi, 0.0% si Mem: 246832k total, 242968k used, 3864k free, 2708k buffers Swap: 514072k total, 0k used, 514072k free, 107936k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3753 daemon 16 0 4972 2616 1940 S 0.0 1.1 0:00.01 named 3787 daemon 16 0 1684 688 584 S 0.0 0.3 0:00.00 atd top - 17:28:26 up 34 min, 1 user, load average: 0.13, 0.05, 0.03 Tasks: 66 total, 1 running, 65 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8% us, 0.0% sy, 0.0% ni, 99.0% id, 0.0% wa, 0.2% hi, 0.0% si Mem: 246832k total, 242928k used, 3904k free, 2708k buffers Swap: 514072k total, 0k used, 514072k free, 107936k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3753 daemon 16 0 4972 2616 1940 S 0.0 1.1 0:00.01 named 3787 daemon 16 0 1684 688 584 S 0.0 0.3 0:00.00 atd $
[ Содержание ]