top
Часто возникает вопрос как узнать список процессов Linux с помощью командной строки. Вашему вниманию представлены описание утилит для просмотра процессов. В первую очередь изучите возможности утилиты top, потому что это стандартная системная утилита которая доступна во всех дистрибутивах Linux/Unix.
top - интерактивный просмотрщик процессов. htop аналог top.
Программа top динамически выводит в режиме реального времени информации о работающей системе, т.е. о фактической активности процессов. По умолчанию она выдает задачи, наиболее загружающие процессор сервера, и обновляет список каждые две секунды.
Управляющие клавиши:
- t - Включение и выключение выдачи на экран суммарных данных.
- m - Включение и выключение выдачи на экран информации об использовании памяти.
- 1 - По умолчанию выводятся данные для одного ЦП (ядра). Этот переключатель позволяет увидеть данные по каждому ЦП.
- f - Вход в меню интерактивного конфигурирования данных, выдаваемых на экран командой top. Полезна для настройки команды top для выполнения специфической задачи.
- o - Позволяет вам интерактивно задавать порядок строк, выдаваемой командой top.
- r - Изменение приоритета процессов с помощью команды renice.
- k - Удаление процесса с помощью команды kill. Программа запрашивает у вас код процесса и сигнал, который будет ему послан.
- z - Переключение между цветным / монохромным вариантом выдачи изображения.
- q - Выйти из программы
- [Пробел] - Немедленно обновить содержимое экрана.
- n - Изменить число отображаемых процессов. Вам предлагается ввести число.
- u - Сортировать по имени пользователя.
- M - Сортировать по объёму используемой памяти.
- P - Сортировать по загрузке процессора.
- A - Сортировка строк по максимальному потреблению различных системных ресурсов. Полезна для быстрой идентификации задач, для которых в системе не хватает ресурсов.
- W - Создание персональных настроек в файле .toprc
Что показывает команда TOP
Расшифровка вывода команды top, например:
top - 10:12:16 up 1 day, 57 min, 3 users, load average: 0.48, 0.94, 1.19 Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1621 apache 20 0 488m 22m 6088 S 2.0 0.1 1:01.41 httpd 3534 apache 20 0 486m 22m 4916 S 1.7 0.1 1:02.16 httpd 1542 postgres 20 0 156m 612 352 S 0.3 0.0 0:06.92 postmaster
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
Данная строка показывает общее количество процессов, сколько из них запущено, сколько находится в спящем режиме, сколько процессов остановлено, а также количество зомби процессов - процессы, которые закончили свое выполнение, имеется ошибка в работе процессов.
Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st
Данная строка рассказывает нам о состоянии процессора, на что затрачено 100% процессорного времени.
- us -(%) действия в пользовательском пространстве;
- sy - (%)затраченного на действия в пространстве ядра;
- ni - (%) затраченного на процессы с низким приоритетом
- id - процент (%) затраченного на простаивание - какое количество времени процессор делает ничего
- wa - процент (%) затраченного на ожидание дисковых операций.
- hi - процент (%) процессорного времени, затраченного на обработку аппаратных прерываний;
- si - процент (%) процессорного времени, затраченного на обработку прерываний ПО;
- st - время в вынужденном ожидании виртуального CPU, пока гипервизор обслуживает другой процессор.
Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers
Эта строка в блок посвященный оперативной памяти. Информация о памяти: total - всего памяти; free - доступно незамедлительно; used - используется в данный момент; buff/cache - сумма буферов и кэша (фактически это можно считать доступной свободной памятью, так как чаще всего эта величина содержит в себе счётчик памяти, требуемой для информации, которая уже записана на диск или скоро будет записана.
Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached
Информация о свап-памяти: всего, свободно, использовано, доступно.
Также информацию о доступной ОЗУ покажет free.
Загрузка системы
Загрузка системы
top - 10:12:16 up 1 day, 57 min, 3 users, load average: 0.48, 0.94, 1.19
- текущее время;
- up time - время работы системы после включения питания;
- user - количество пользователей, которые в данный момент работают в системе;
- load average - общая средняя загрузка системы (измеряется каждые 1, 5 и 15 минут). Общей средней загрузкой системы называется среднее число процессов, находящихся в состоянии выполнения (R) или в состоянии ожидания (D), эту информацию можно увидеть в колонке S вывода команды top, она может принимать 5 значений:
'D' = uninterruptible sleep (состояние ожидания) 'R' = running (состояние выполнения) 'S' = sleeping 'T' = traced or stopped 'Z' = zombie
Состояния процессов
Состояния процессов
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
- total — общее количество процессов в системе;
- running — количество процессов, выполняемых процессором или стоящих в очереди на выполнение;
- sleeping — количество процессов, ожидающих какого-либо события ввода-вывода;
- stoped — количество приостановленных процессов;
- zombie — количество процессов, находящихся в состоянии «зомби».
Состояния процессора (ЦП)
Состояния процессора (ЦП).
Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st
- us — (User CPU time) процент использования процессорного времени программами пользователей;
- sy — (System CPU time) процент использования процессорного времени процессами ядра Linux;
- ni — (Nice CPU time) процент использования процессорного времени программами с измененным приоритетом;
- id — простой процессора
- wa — (iowait) время, затраченное на завершение ввода/вывода (IO)
- hi — (Hardware IRQ) процент времени, которое процессор тратит на обработку прерываний на уровне оборудования (hardware- прерываний).
- si — (Software Interrupts) процент времени, затраченное на работу обработку software- прерываний (network)
- st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)
Состояние оперативной памяти (ОЗУ)
Состояние оперативной памяти (ОЗУ). Top показывает, что на компьютере установлено 16GB ОЗУ.
Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers
- total - общее количество оперативной памяти (16466952k / 1024 = 16081MB (мегабайт) = 16GB);
- used - количество использованной оперативной памяти (6540MB);
- free - количество свободной оперативной памяти (9540MB);
- buffers - (38MB).
Состояние Swap
Использование Swap- раздела:
Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached
- total — общее количество swap- раздела (33554428k / 1024 = 32767 MB);
- used — количество использованного swap- раздела (45812k = 44 MB);
- free — количество свободного swap- раздела.
Расшифровка столбцов
- PID
- USER
- PR
- NI
- VIRT - (kb - килобайты). Общее количество виртуальной памяти, используемой программой. VIRT = SWAP + RES.
- RES - (kb). Количество резидентной (не перемещаемой в swap) памяти. RES = CODE + DATA.
- SHR - (kb). Количество разделяемой (shared) памяти программы.
- S - статус процесса.
- %CPU
- %MEM
- TIME+
- COMMAND
htop
Homepage: htop
Htop – основанный на ncurses просмотрщик процессов подобный top, htop, atop интерактивные просмоторщики процессов, но позволяющий прокручивать список процессов вертикально и горизонтально, чтобы видеть их полные параметры запуска. Управление процессами (остановка, изменение приоритета) может выполняться без ручного ввода их идентификаторов.
- htop в CentOS теперь CentOS Stream установка из репозитория см. rpm
# wget http://download.fedora.redhat.com/pub/epel/5/x86_64/htop-0.8.3-1.el5.x86_64.rpm # rpm -i htop-0.8.3-1.el5.x86_64.rpm
- Замечания к BSD системам, при использовании htop
При установки htop на FreeBSD требует смонтированную систему linprocfs, для совместимости с Linux. linprocfs - the Linux process file system, or linprocfs, emulates a subset of Linux' process file system and is required for the complete operation of some Linux binaries.
> man linprocfs ... > mount -t linprocfs linproc /compat/linux/proc > df -h ... linprocfs 4.0K 4.0K 0B 100% /usr/compat/linux/proc > cd /usr/ports/sysutils/htop > make install clean
Скрипт для монтирования linprocfs при загрузки FreeBSD:
> ee /usr/local/etc/rc.d/0start.sh #! /bin/sh #for htop /sbin/mount -t linprocfs linproc /compat/linux/proc
Или прописать в fstab строку и для проверки примонтировать командой mount linproc
linproc /usr/compat/linux/proc linprocfs rw 0 0
atop
