web-dev-qa-db-ja.com

getrusageシステムコール:「最大常駐セットサイズ」とは

man getrusage 2言います

ru_maxrss (since Linux 2.6.32)
              This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
              child, not the maximum resident set size of the process tree.

では、この数字は正確にはどういう意味ですか?

26
ren

プロセスの常駐セットサイズは、プロセスに属し、現在RAM(実際のRAM、スワップされていない、または常駐していない))に存在する(常駐)メモリの量です。

たとえば、プロセスがメモリのチャンク(たとえば100Mb)を割り当て、それをアクティブに使用する(読み書きする)場合、その常駐セットサイズは約100Mb(およびオーバーヘッド、コードセグメントなど)になります。プロセスの後、しばらくの間そのメモリの使用を停止する(ただし解放しない)場合、OSはそのメモリのチャンクをスワップして、他のプロセス(またはキャッシュ)のためのスペースを作ることを選択できます。常駐セットのサイズは、カーネルがスワップアウトした量だけ減少します。プロセスが起動し、そのメモリの再利用を開始すると、カーネルはスワップからデータを再ロードし、常駐セットのサイズが再び増加します。

ru_maxrss の分野 struct rusageは、常駐セットサイズの「最高水準点」です。ピークを示しますRAMこのプロセスで使用(RUSAGE_SELF)。

プロセスの常駐セットのサイズを制限して、システム上のすべてのRAM)を1つのアプリケーションが「使い果たし」、他のアプリケーションを強制的にスワップ(またはメモリ不足の状態で完全に失敗)するのを回避できます。 )。

30
Mat