PPID
が1のすべてのプロセス(子プロセスを含む)の合計メモリ使用量を見つけるにはどうすればよいですか?複数の子プロセスをフォークするnginx/httpdのようなプログラムの場合、ps
/top
は、各プロセスのメモリ使用量を個別に示します。個々の子プロセスではなく、nginx
/Apache
の合計メモリ使用量を知りたい。
インタラクティブなものが必要な場合は、次を試してください。
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
Psを使ってppidをフィルタリングする賢い方法はおそらくあるでしょう...しかし、私は愚かすぎてすぐに理解できません。
Systemdを使用するディストリビューションでは、 systemd-cgls
サービスごとのメモリ使用量を表示する必要があります。ただし、常に情報を取得するとは限りません。