web-dev-qa-db-ja.com

親プロセスごとにグループ化されたメモリ使用量

PPIDが1のすべてのプロセス(子プロセスを含む)の合計メモリ使用量を見つけるにはどうすればよいですか?複数の子プロセスをフォークするnginx/httpdのようなプログラムの場合、ps/topは、各プロセスのメモリ使用量を個別に示します。個々の子プロセスではなく、nginx/Apacheの合計メモリ使用量を知りたい。

3
Joyce Babu

インタラクティブなものが必要な場合は、次を試してください。

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をフィルタリングする賢い方法はおそらくあるでしょう...しかし、私は愚かすぎてすぐに理解できません。

4
David Goodwin

Systemdを使用するディストリビューションでは、 systemd-cgls サービスごとのメモリ使用量を表示する必要があります。ただし、常に情報を取得するとは限りません。

0
user1686