Как найти общее использование памяти всеми процессами (включая дочерние процессы) с PPID 1. Для такой программы, как nginx/httpd, которая разветвляет несколько дочерних процессов, ps/top показывает использование памяти каждым процессом в отдельности. Я хочу знать общее использование памяти nginx/apache вместо отдельных дочерних процессов.

2 ответа2

0

В дистрибутиве, использующем systemd, systemd-cgls должен показывать использование памяти для каждой службы. Не всегда получить информацию, хотя.

0

Если вы хотите что-то интерактивное, попробуйте:

atop - launch it and press 'm' (memory usage) and 'p' (group by process name).

Если вы хотите что-то написанное в сценарии, есть что-то вроде приведенного ниже - хотя он не выполняет то, о чем вы просили (PPID 1), но вы можете группировать на основе, например, имени процесса, используя awk -

ps -eo pmem,vsize,cmd | grep -v '\[' | awk 'NR>2{mem[$3]+=$2}END {for(k in mem) print k " " mem[k]/1024000};' | sort -gk 2 | tail -n 10

Вероятно, есть какой-то умный способ фильтровать ppid с помощью ps ... но я слишком глуп, чтобы понять это быстро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .