Solaris, HP-UX
と でプロセス サイズを取得する正しい方法は何AIX
ですか? top
orps -o vsz
または何か他のものを使用する必要がありますか?
4 に答える
、 、、 、およびその他のあいまいに見える略語の正確な定義はvsize
、OS によって異なります。およびコマンドのマニュアル ページには何らかの説明がありますが、そのような説明はすべて大幅に簡略化されています (または、絶滅したカーネルの実装に基づいています)。
概念としての「プロセス サイズ」は、一般的なケースでは非常に難しいものです。特定のインスタンスでの回答は、OS での実際のメモリ管理の実装に大きく依存し、ほとんどのユーザー (およびほとんどの開発者) の心に存在するきちんとした「プロセス サイズ」の概念ほど満足できるものはめったにありません。rss
rprvt
rshrd
top
ps
たとえば、これらの数値のどれも (また、おそらくそれらの組み合わせも) を使用して、特定の量の空きメモリで一度に実行できるプロセスの数を正確に知ることはできません。しかし、実際には、あなたの最善の策は、その端から来ることです: なぜこの番号が必要で、何に使用しますか? その情報があれば、より有用な回答が得られると思います。
Solaris では、コマンドを使用してプロセスのメモリ使用量に関する詳細情報を取得できますpmap
。特に、pmap -x <pid>
プロセスのメモリが共有されている量と、そのプロセスによって具体的に使用されている量を示します。これは、プロセスの「限界」メモリ使用量を計算するのに役立ちます。この手法を使用すると、共有ライブラリの二重カウントを回避できます。
はい、VSZ でロックするのは正しいです。
ps u
仮想メモリのサイズと常駐セットのサイズである VSZ と RSS が表示されます。RSS はプロセスに割り当てられた物理メモリの量で、VSZ はプロセスの仮想メモリ サイズです。プログラムの複数のコピーを実行している場合、VSZ 内の多くのメモリがそれらのプロセス間で共有されます。
次のようにすべてのプロセスの常駐セットサイズを合計しました(ルートとして):
ps ax -o rss | awk '{rss += $1;} END { print rss}'