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