プロセスが使用できる仮想メモリの量を制限せずに、プロセスが使用できる物理メモリの量を制限したいと考えています。私はこれを、メモリ不足の下でさまざまなアルゴリズムの動作を測定するために行っており、利用可能なさまざまな量の物理メモリでパフォーマンスをテストする必要があります。または、何らかの方法でプロセスの常駐メモリの制限をサポートするオペレーティング システムが必要です。
残念ながら、Linux は を尊重/強制しませんしsetrlimit(RLIMIT_RSS, ...)
、OSX もそうではありません.[1] これを実行できるオペレーティング システムを教えてください。OSX 以外の BSD はありますか? Solaris でこれを行うメカニズムはありますか? Windowsのいくつかのバリアントはこれを行うことができますか?
[1] Linux は要求を完全に無視し、OSX はそれを使用して、物理メモリが使い果たされたときに最初に何をスワップアウトするかを決定します。Xメガのメモリしか使用できない場合、どちらもアルゴリズムの動作を分析するのに役立ちません。Linux にはカーネル内でこれを行うためのメカニズムがないことが判明したため、誰かがこれを可能にするカーネル フォークを教えてくれない限り、完全に失敗しています。Solaris にはそのオプションすらありませんがsetrlimit()
、私が知らない別の方法があるかもしれません。