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


23

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.

それで、この数は正確に何を意味するのでしょうか?


ru_maxrssMac / BSDマシンではバイト単位のメモです。
アイザックターナー

1
小さな説明:ru_maxssMac OS X(Darwin)マシンではバイト単位ですが、BSDマシンおよびLinuxマシンではキロバイト単位です。stackoverflow.com/q/40773924/781723およびstackoverflow.com/q/12050913/781723を参照してください。
DW

回答:


27

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.