プログラムのすべてのプロセスでメモリ使用量をどのように計算できますか?
たとえば、Webページに複数のChromeタブが開いていて、それぞれ異なるプロセスを実行しています。すべてのChromeタブの合計メモリ使用量を取得するには? Chrome実行可能ファイルは/opt/google/chrome/chrome
私のUbuntuにあります。
答え1
便利な方法は次のとおりです。上。上部に入力して見ることがPできます。プログラムごと次の統計があります。
PAUSED
NPROCS SYSCPU USRCPU VSIZE RSIZE RDDSK WRDSK SNET MEM CMD 1/4
17 1.14s 8.06s 14.3G 2.7G ? ? ? 35% chrome
1 0.30s 0.30s 2.6G 1.9G ? ? ? 25% Xorg
1 0.09s 1.15s 1.8G 329.7M ? ? ? 4% gnome-shell
1 0.00s 0.07s 994.8M 257.2M ? ? ? 3% thunderbird
1 0.00s 0.00s 1.3G 162.4M ? ? ? 2% soffice.bin
2 0.00s 0.00s 1.2G 86736K ? ? ? 1% gvim
1 0.00s 0.01s 1.0G 64724K ? ? ? 1% owncloud
1 0.00s 0.00s 970.3M 59908K ? ? ? 1% evolution-cale
1 0.00s 0.00s 675.7M 48404K ? ? ? 1% tracker-extrac
1 0.03s 0.03s 581.0M 47080K ? ? ? 1% xchat
2 0.00s 0.00s 84.2G 45292K ? ? ? 1% nacl_helper
M各プロセスのメモリ統計を入力します。
PAUSED
PID MINFLT MAJFLT VSTEXT VSIZE RSIZE VGROW RGROW MEM CMD 1/5
1069 38118 0 0K 2.6G 1.9G 0K 40K 25% Xorg
14702 20 0 91595K 939.1M 427.0M 0K 0K 5% chrome
3755 39 0 11K 1.8G 329.7M 0K 0K 4% gnome-shell
14669 7804 0 91595K 1.8G 293.1M 0K -136K 4% chrome
15530 477 0 91595K 1.1G 292.6M -8196K -156K 4% chrome
3932 6 0 96K 994.8M 257.2M 0K 0K 3% thunderbird
15436 7434 0 91595K 978.4M 228.5M -1024K -212K 3% chrome
14821 2129 0 91595K 1.0G 220.2M 1024K 1936K 3% chrome
15084 213 0 91595K 890.7M 211.9M 0K 0K 3% chrome
15129 58 0 91595K 915.4M 208.1M 0K 0K 3% chrome
14729 13 0 91595K 1.1G 188.0M 0K 0K 2% chrome
15474 2080 0 91595K 858.5M 166.0M 0K -800K 2% chrome
11220 0 0 2K 1.3G 162.4M 0K 0K 2% soffice.bin
H利用可能なコマンドの簡単なヒントについては、入力してください。調査する前に、自動更新を一時停止するためにアクティブA/すべてのプロセスの統計収集を切り替えるには、入力してくださいZ(PAUSED
有効な場合は右上に表示されます)。
答え2
次のように、psコマンドを他のコマンドと一緒に使用できます。
ps -eo size,command --sort -size | grep chromium | awk '{ hr=$1/1024 ; sum +=hr} END {print sum}'
日常的なユースケースでは、ファイルを作成し(ここでは名前をmemsumと指定しました!)、次の場所に置きます。
ps -eo size,command --sort -size | grep $1 | awk '{ hr=$1/1024 ; sum +=hr; echo $1} END {print sum}'
# ^this $1 will come from runtime argument
次に、ここにフラグを設定しますx
(実行可能にします)。
chmod +x memsum
そしてそれを使用してください:
./memsum chromium
./memsum httpd
答え3
次のコマンドは、psの出力をgrepして出力し、awkを使用して列の値を合計します。正しいプロセスセットが合計されていることを確認するには、合計と一緒にpsの出力を調べると便利です。
ps xuaw --cols=80|grep -e chrome -e COMMAND|grep -v grep |awk '{m=$5;sum += m;print} END {print "Total VSZ: " sum}'
サンプル出力は次のとおりです。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
2006 29273 0.0 0.3 701716 82948 ? Sl Oct30 1:44 /opt/google/chrome/chrome
2006 29288 0.0 0.0 351768 6892 ? S Oct30 0:00 /opt/google/chrome/chrome
2006 29289 0.0 0.0 6284 332 ? S Oct30 0:00 /opt/google/chrome/chrome-sandbox /opt/google/chrome/chrome --type=
2006 29290 0.0 0.0 398284 20104 ? S Oct30 0:00 /opt/google/chrome/chrome --type=zygote
2006 29294 0.0 0.0 125500 4684 ? S Oct30 0:00 /opt/google/chrome/nacl_helper_bootstrap /opt/google/chrome/nacl_he
2006 29295 0.0 0.0 406480 7300 ? S Oct30 0:00 /opt/google/chrome/chrome --type=zygote
2006 29432 0.0 0.0 989216 19464 ? Sl Oct30 0:01 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fiel
2006 29772 0.0 0.1 1004072 32408 ? Sl Oct30 0:09 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fiel
2006 29780 0.0 0.0 389592 19404 ? Sl Oct30 0:00 /opt/google/chrome/chrome --type=service
2006 29788 0.0 0.0 938204 21080 ? Sl Oct30 0:00 /opt/google/chrome/chrome --type=ppapi-broker --channel=29273.5.113
Total VSZ: 5311116