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.
では、この数字は正確にはどういう意味ですか?
プロセスの常駐セットサイズは、プロセスに属し、現在RAM(実際のRAM、スワップされていない、または常駐していない))に存在する(常駐)メモリの量です。
たとえば、プロセスがメモリのチャンク(たとえば100Mb)を割り当て、それをアクティブに使用する(読み書きする)場合、その常駐セットサイズは約100Mb(およびオーバーヘッド、コードセグメントなど)になります。プロセスの後、しばらくの間そのメモリの使用を停止する(ただし解放しない)場合、OSはそのメモリのチャンクをスワップして、他のプロセス(またはキャッシュ)のためのスペースを作ることを選択できます。常駐セットのサイズは、カーネルがスワップアウトした量だけ減少します。プロセスが起動し、そのメモリの再利用を開始すると、カーネルはスワップからデータを再ロードし、常駐セットのサイズが再び増加します。
ru_maxrss
の分野 struct rusage
は、常駐セットサイズの「最高水準点」です。ピークを示しますRAMこのプロセスで使用(RUSAGE_SELF
)。
プロセスの常駐セットのサイズを制限して、システム上のすべてのRAM)を1つのアプリケーションが「使い果たし」、他のアプリケーションを強制的にスワップ(またはメモリ不足の状態で完全に失敗)するのを回避できます。 )。