質問

プロセスサイズを取得する正しい方法は何ですか Solaris, HP-UX そして AIX?使うべきか top または ps -o vsz または、他の何か?

役に立ちましたか?

解決

正確な定義は、 vsize, rss, rprvt, rshrd, 、その他のわかりにくい略語は OS によって異なります。のマニュアルページ top そして ps コマンドには何らかの説明が含まれますが、そのような説明はすべて大幅に簡略化されています (または、長い間消滅したカーネル実装に基づいています)。
概念としての「プロセス サイズ」を特定するのは、一般的な場合には恐ろしいほど困難です。特定の場合の答えは、OS での実際のメモリ管理の実装に大きく依存しており、ほとんどのユーザー (およびほとんどの開発者) の頭の中に存在するきちんとした「プロセス サイズ」の概念ほど満足のいくものになることはほとんどありません。

たとえば、これらの数値のいずれも (おそらくそれらの組み合わせも) 使用して、特定の空きメモリ量で同時に実行できるそのようなプロセスの数を正確に示すことはできません。しかし、実際には、次のような方向から取り組むのが最善の策です。なぜこの番号が必要ですか?何に使用しますか?これらの情報を考慮すると、より有益な回答が得られると思います。

他のヒント

Solaris では、プロセスのメモリ使用量に関する詳細情報を取得できます。 pmap 指示。特に、 pmap -x <pid> プロセスのメモリがどのくらい共有されているか、およびそのプロセスによって具体的にどのくらい使用されているかを示します。これは、プロセスの「限界」メモリ使用量を把握するのに役立ちます。この手法を使用すると、共有ライブラリの二重カウントを回避できます。

はい、VSZ でロックするのは正しいです。

ps u 仮想メモリ サイズと常駐セット サイズである VSZ と RSS が表示されます。RSS はプロセスに割り当てられた物理メモリの量で、VSZ はプロセスの仮想メモリ サイズです。プログラムのコピーを複数実行している場合、VSZ 内の多くのメモリがそれらのプロセス間で共有されます。

すべてのプロセスの常駐セット サイズを次のように合計しました (root として)。

ps ax -o rss | awk '{rss += $1;} END { print rss}'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top