1

プロセスが使用できる仮想メモリの量を制限せずに、プロセスが使用できる物理メモリの量を制限したいと考えています。私はこれを、メモリ不足の下でさまざまなアルゴリズムの動作を測定するために行っており、利用可能なさまざまな量の物理メモリでパフォーマンスをテストする必要があります。または、何らかの方法でプロセスの常駐メモリの制限をサポートするオペレーティング システムが必要です。

残念ながら、Linux は を尊重/強制しませんしsetrlimit(RLIMIT_RSS, ...)、OSX もそうではありません.[1] これを実行できるオペレーティング システムを教えてください。OSX 以外の BSD はありますか? Solaris でこれを行うメカニズムはありますか? Windowsのいくつかのバリアントはこれを行うことができますか?


[1] Linux は要求を完全に無視し、OSX はそれを使用して、物理メモリが使い果たされたときに最初に何をスワップアウトするかを決定します。Xメガのメモリしか使用できない場合、どちらもアルゴリズムの動作を分析するのに役立ちません。Linux にはカーネル内でこれを行うためのメカニズムがないことが判明したため、誰かがこれを可能にするカーネル フォークを教えてくれない限り、完全に失敗しています。Solaris にはそのオプションすらありませんがsetrlimit()、私が知らない別の方法があるかもしれません。

4

1 に答える 1

0

理解した。したがって、私が見つけたどの Unix でもこれを行うことはほとんどできません。

したがって、やるべきことは、必要なだけのメモリを備えた仮想化された OS を実行することです。次に、仮想 OS はスワップに追い込まれますが、メイン OS は問題なく動作します。さらに良いことに、実際の時間を測定するのではなく、ページ フォールトをカウントするだけの場合は、この方法を使用すると、仮想マシンのスワップ ディスクを仮想化されていない RAM ディスクにすることができます。仮想マシン!

于 2010-07-16T17:30:17.287 に答える