top / htopなどのツールを使用するときに同様のプロセスをグループ化する方法はありますか?時には何が私のメモリを消費しているのか知りたいのですが、特定のプログラム(主にブラウザ)が複数のプロセスを使用しており、実際にどのくらいのRAMを使用しているのか読みにくいです。
これまで、私は次のようなことだけを考えました。
ps ax -o pmem,cmd | grep opera | grep -oE '^[ ]*[0-9.]+' | paste -sd+ - | bc
ベストアンサー1
これを使用して、ps -C
特定のコマンド名に関するプロセス情報のみを表示できます。
例えば
ps -C opera
ps
その後、他のオプションを使用して目的のデータを抽出できます。特に列ヘッダーをh
抑制し、プロセスで使用されるメモリの割合を表示します。--no-headers
-o pmem
ps -C opera --no-headers -o pmem
これにより、1行に1つずつ多くのメモリ使用率が提供されます。
このようにデータを合計する方法はいくつかあります。私がよく使う方法の1つはxargsにパイプし、要素をスペースで区切った行に変換し、sedにパイプし、スペースをシンボルに変換し、計算を実行するために+
sedに転送されましたbc
。あなたの配管方法は 。paste -sd+
良くなくても効果的です| xargs | sed
。
これらすべてをまとめると、次のような結果が得られます。
ps -C opera --no-headers -o pmem | xargs | sed -e 's/ /+/g' | bc
または
ps -C opera --no-headers -o pmem | paste -sd+ | bc
つまり、ps -C
特定の実行可能プログラムのデータのみが必要な場合は、代わりに複数のgrepを使用できます。
注:-C
一度に複数のプログラムに関する情報が必要な場合は、同じコマンドラインで複数のオプションを使用できます。例えば
ps -C iceweasel -C chromium -C opera