2009-06-10 8 views
13

マンページによれば、ulimitの "-l"は "メモリにロックされる最大サイズ"を意味します。この文はどういう意味ですか?プログラムの実行にはどのような影響がありますか?"ulimit -l"とはどういう意味ですか?

答えて

12

ロックされているメモリがページアウトされない可能性があります。これにより、他のプロセスで使用可能なメモリ量が減ります。この設定は、ロックできるメモリの量を制限します。

+0

私はそれを100Mに設定してからプログラムを起動すると(つまり、Javaプログラムを言います)、それはメモリに保持され、ページアウトされません。 –

+1

正確ではありません。プログラムはメモリをロックする必要があります。これはプログラムごとではなくユーザーの制限であるため、他のプログラムがメモリをロックして割り当ての一部を使用する可能性があります。 –

+4

ulimitはロックできる量を制限します。実際にロックされるには、mlockまたはmlockallを呼び出す必要があります。 –

8

これは、あなたがmlock

でunswappable行うことができますどのくらいのメモリ制限setrlimit manページは言う:

RAM内にロックできるメモリの最大バイト数。実際、この制限は、システムページサイズの最も近い倍数に切り捨てられます。この制限は、mlock(2)およびmlockall(2)およびmmap(2)MAP_LOCKED操作に影響します。 Linux 2.6.9以降、shmctl(2)SHM_LOCK操作にも影響します。ここでは、呼び出し元プロセスの実際のユーザーIDによってロックされる共有メモリセグメント(shmget(2)を参照)の合計バイト数に最大値を設定します。 shmctl(2)SHM_LOCKロックは、mlock(2)、mlockall(2)、およびmmap(2)MAP_LOCKEDによって確立されたプロセスごとのメモリロックとは別に処理されます。プロセスはこれらの2つのカテゴリのそれぞれでこの限界までバイトをロックできます。 2.6.9より前のLinuxカーネルでは、この制限によって特権プロセスによってロックされる可能性のあるメモリ量が制御されていました。 Linux 2.6.9以来、特権プロセスがロックするメモリの量に制限はなく、特権を持たないプロセスがロックする可能性のあるメモリ量を管理します。

関連する問題