Utilisation de la mémoire regroupée par processus parent

1

Comment trouver l'utilisation totale de la mémoire de tous les processus (y compris les processus enfants) avec PPID1. Pour un programme tel que nginx / httpd qui impose plusieurs processus enfants, ps/ topdonne l'utilisation de la mémoire de chaque processus séparément. Je souhaite connaître l'utilisation totale de la mémoire par nginx/ à la apacheplace des processus enfants individuels.

Joyce Babu
la source

Réponses:

2

Si vous voulez quelque chose d'interactif, essayez:

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

Si vous voulez quelque chose de scriptable, il y a quelque chose qui ressemble à ce qui suit - bien que ce ne soit pas tout à fait ce que vous avez demandé (PPID 1), mais vous pouvez grouper en fonction du nom du processus à l'aide de 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

Il existe probablement un moyen intelligent de filtrer le PPID avec le ps ... mais je suis trop stupide pour le comprendre rapidement.

David Goodwin
la source
0

Sur une distribution utilisant systemd, systemd-cglsdevrait montrer l'utilisation de la mémoire par service. Ne pas toujours obtenir l'information cependant.

Grawity
la source
Merci. Le serveur exécute CentOS 6, il n'y a donc pas de systemd. J'ai ajouté le centos-6tag à la question.
Joyce Babu