プロセスの代わりにコマンドグループのメモリ使用量を表示する方法

プロセスの代わりにコマンドグループのメモリ使用量を表示する方法

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

おすすめ記事