Google chrome/chromiumは複数のプロセスを生成するため、これらのプロセスが合計でどれだけの合計メモリを使用しているかを確認することは困難です。
一連の接続されたプロセスが使用している合計メモリ量を確認する簡単な方法はありますか?
2016年3月に google killed chrome:// memory とすると、現在 smem を使用しています:
# detailed output, in kB apparently
smem -t -P chrom
# just the total PSS, with automatic unit:
smem -t -k -c pss -P chrom | tail -n 1
chrom
をフルパスで置き換えます。 /opt/google/chrome
または/usr/lib64/chromium-browser
-P firefox
を使用したマルチプロセスFirefox(e10s)でも同じように機能しますSudo smem
を使用します。私はそれが最良の解決策ではないと確信していますが、それでも私にとってはうまくいきます:
#!/bin/sh
ps aux | grep "[/]opt/google/chrome/chrome" | awk '{print $5}' | awk '{sum += $1 } END { print sum }'
ps aux | grep "[/]opt/google/chrome/chrome" | awk '{print $6}' | awk '{sum += $1 } END { print sum }'
注:[/]opt/google/chrome/chrome
をシステムに適したものに、たとえばMac OS Xを使用している場合(単にgrep "chrome"
動作します)。
これを実行する:
Perl -e '$a="x"x1000000000;sleep(10);print"done\n"'
1.8GBのRAMを占有します。だからあなたはこれを実行することを期待するでしょう:
Perl -e '$a="x"x1000000000;fork;fork;fork;fork;sleep(10);print"done\n"'
16倍かかります。しかし、そうではありません。
これは、Linuxカーネルのインテリジェントなコピーオンライトによるものです。「$ a」の内容は変更されないため、「$ a」のメモリを共有できます。ただし、「$ a」が変更されるまで共有されたままになります。その場合、変更されたセクションがコピーされ、RAMを使用し始めます。
コピーオンライトオーバーコミットされたメモリの量を測定できるかどうかはわかりません。しかし、少なくともこれはあなたの過剰計算を説明します。
Chrome/chromiumにタスクマネージャがあることは知っていましたが、使用された合計メモリはわかりません。タスクマネージャーの[Stats for nerds]リンクがchrome:// memory-redirect /にアクセスし、使用されている合計メモリをリストしていることがわかります。これらの数値を外部で検証し、コマンドラインで情報を取得してより多くのことを実行できるようにすると便利ですが、これが利用できる最良の方法のようです。
プロセスの合計をすばやく計算するだけです。
オンMac:
chrome://system/
に移動し、mem_usageで報告されたすべてを選択しますpython
、CMD + Vを実行、Enter出来上がり! 「簡単」... ????????
PS-ショートカット忍者と80年代/ 90年代の格闘ゲームプレーヤーは、このソリューションで問題はないはずです????????????
Vimとawkで解決策を見つけました。 chrome:// systemを開き、mem_usageを展開し、vimにコピーして正規表現を実行します。
:%s/\D*\(\d*\).MB.*/\1
これにより、MBの前の数値のみが残ります。ファイルを保存して実行します
cat file | awk '{sum += $1} END {print sum}'
Vimの正規表現コードをsedに変換できませんでした。
@eddygeekの改善策:
smem -ktP chrome
最後の行の「USS」列の値を見てください。
注:このエイリアスを作成することもできます:
alias mem='smem -ktP '
次に使用します:
mem chrome
[〜#〜] uss [〜#〜]があり、クロスプラットフォームで利用できます
USS(ユニークセットサイズ)は、プロセスに固有のメモリであり、プロセスが現在終了している場合は解放されます。
psutil> 4.0 Pythonライブラリがアクセスできる
ここで私はそれを使用します
Sudo python3 -c "import psutil;print(sum(p.memory_full_info().uss for p in psutil.Process(pid=292).children())/1024/1024);"
ここで、pid = 292は、アクティビティモニターの最も外側のプロセスのPIDです。