Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
ps [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Использование ps для мониторинга процессов ======
 +{{htmlmetatags>
 +metatag-description=(Использование утилиты ps. Утилита ps генерирует отчет, который содержит статистические данные о выполнении текущих процессов в Linux.)
 +}}
  
 +Утилита **ps** выводит статистику и информацию о состоянии процессов в системе, в том числе ID процесса или нити, объем выполняемого ввода-вывода и используемый объем ресурсов ЦП и памяти. ps поддерживает опции в стиле трех разных типов UNIX. Опции в стиле Unix98 состоят из одного или нескольких символов, перед которым(и) должен стоять дефис. Опции в стиле BSD имеют аналогичный вид, только используются без дефиса. Опции, характерные только для GNU-версии представляют собой слово, перед которым должно стоять два дефиса. Их нельзя объединять, как однобуквенные опции двух предшествующих типов. Таким образом, существует три равноправных формата задания этой команды (при этом опции разных типов нельзя употреблять в одной команде):<file>
 +ps [-опции]
 +ps [опции]
 +ps [-- длинное_имя_опции [-- длинное_имя_опции] ...]
 +</file>
 +
 +Рассмотрим информацию выводимую ps на примере процесса демона radiusd.
 +<file>
 +# ps aux | grep radiusd
 +USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 +root     16797  1.2  7.7 2277272 1277644 ?     Ssl  Feb15  37:21 /usr/local/radiusd
 +
 +# ps -ef | grep radiusd
 +UID        PID  PPID  C STIME TTY          TIME CMD
 +root     16797      1 Feb15 ?        00:37:22 /usr/local/radiusd
 +
 +# ps v 16797
 +  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
 +16797 ?        Ssl   38:29      2  2069 2275202 1280524  7.7 /usr/local/radiusd
 +</file>Описание выводимых столбцов.
 +  * **С**. Показатель использования [[ЦП]] процессом (в тактах; в первом приближении тактовая частота характеризует производительность подсистемы (процессора, памяти и пр.), то есть количество выполняемых операций в секунду).
 +  * **TIME**. Общее процессорное время, затраченное на выполнение процесса (в единицах времени).
 +  * **%CPU**. Этот параметр отражает зависимость программы от процессора. Значение %CPU указывает, какой процент процессорного времени был потрачен на выполнение процесса с момента его запуска. Это значение подсчитывается по следующей формуле: (время ЦП, затраченное на выполнение процесса / время выполнения процесса) * 100, в системе SMP это значение делится на число ЦП, работающих в системе.
 +  * **STIME**. Время старта процесса.
 +  * **RSS**. Объем физической памяти, занятой процессом, в килобайтах. Это значение равно числу страниц из рабочего сегмента памяти и из сегмента кода программы, находящихся в оперативной памяти, умноженному на 4. Не забывайте, что сегмент кода программы применяется всеми запущенными экземплярами программы. Если запущено 26 процессов ksh, в оперативной памяти будет находиться только одна копия страниц с исполняемым кодом ksh, однако в выводе команды ps размер этих страниц будет прибавлен к значению RSS всех экземпляров программы ksh.
 +  * **TRS**. Размер резидентной (размещенной в физической памяти) командной части программы. Это значение равно числу страниц с кодом программы, умноженному на 4. Это значение искажает фактический объем памяти, занятый программой, если запущено несколько экземпляров программы.
 +  * **%MEM** Это значение указывает, какую долю (в процентах) от общего объема оперативной памяти компьютера составляет значение **RSS**. Оно характеризует долю физической памяти, занятой процессом. К сожалению, как и RSS, эта величина переоценивает загрузку памяти процессами, которые совместно используют командную часть программы. Кроме того, округление до ближайшего целого значения приводит к тому, что значение %MEM будет равно 0,0, если отношение RSS к объему оперативной памяти меньше 0,005.
 +====== Примеры использования: команда ps aux ======
 +  * Полный список команд ps можно увидеть (например для использования с ключом -o)<file>
 +# ps L
 +%cpu         %CPU    
 +%mem         %MEM
 +cpuid        CPUID   
 +cputime      TIME 
 +</file>    
 +  
 +  * Вывести 10 процессов, занимающих больше всего ЦП <file>
 +# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
 +# ps -eo pcpu,pid,user,args | sort -r -k1 | less
 +# ps -auxf | sort -nr -k 3 | head -10
 +</file>
 +  * Выдать информацию о параметрах безопасности<file>
 +# ps -eo euser,ruser,suser,fuser,f,comm,label
 +# ps axZ
 +# ps -eM
 +</file>
 +  * Выдать 10 процессов, потребляющих наибольшее количество памяти<file>
 +# ps -auxf | sort -nr -k 4 | head -10
 +</file>
 +  * Вывести информацию (объем используемой ОЗУ) о процессе по его PID<file>
 +# ps -fp 28964
 +UID        PID  PPID  C STIME TTY          TIME CMD
 +apache   28964 13246  0 Feb15 ?        00:01:14 /usr/sbin/httpd
 +</file>
 +Читайте также: [[process-zombi]]

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!