0

RHEL4マシンで実行されているCで記述されたデーモンがあります。

デーモンは共有メモリのセグメントにアクセスします(65536要素の大きな配列にすぎません)。malloc/freeは実行されません。

ps auxは、デーモンのサイズが共有メモリ+ VSZとして数kb、RSSとして数kbであることを示していることを確認しました。

次に、デーモンが共有メモリアレイにアクセスするほど、VSZとほぼ同じサイズに達するまでRSSが増加します。

LinuxがこのようにRSSを計算するのはなぜですか?

つまり...共有メモリは、他の多くの実行可能ファイルからアクセスできるため、単一のプロセスによって消費されるメモリ(RSS)として無視されるべきではありませんか?

そして、なぜそれは共有メモリにアクセスするだけでRSSを上げるのですか?

4

1 に答える 1

1

RSSは、プロセスにマップされた物理メモリの量です。

Linuxはデマンドページングを採用しているため、物理メモリは最初のアクセスでのみマップされます。VSZは、オンデマンドで物理メモリに支えられた仮想メモリです。これは、共有メモリマッピングの多くにアクセスするにつれてRSSが大きくなる理由を説明しています。

于 2012-07-11T08:44:40.060 に答える