1

IIS6は、32Gbの物理RAMを搭載した64ビットのWindows2003サーバーで実行されています。.NET 3.5 ASP.NETアプリケーション内の古い32ビットの依存関係により、現在、IISワーカープロセスを32ビットwow64モードで実行する必要があります。これにより、ワーカープロセス用に4Gbのメモリにアクセスできるようになります。

私の質問は、Web Garden設定を使用して、たとえば4つのワーカープロセスを構成する場合、各ワーカープロセスがそれぞれ4Gbのメモリにアクセスできるため、約16Gbのメモリにアクセスできるかどうかです。それとも、ASP.NETアプリの4Gbの制限に固執していますか?

4

2 に答える 2

1

はい、プロセスごとに4GBの制限があります。64ビットカーネルで実行されている各32ビットプロセスには、4GBのプライベートアドレススペース制限があります(ちなみに、これは32ビットシステムのようにカーネルと共有されません)。4x4GB = 16GBのメモリにアクセスできますが、この16GBを一度に1つのプロセスで使用することはできません。それぞれが直接アクセスできるのは、独自の4GBのプライベートメモリのみです。他のプロセスからメモリにアクセスするには、プロセス間通信メディアを使用する必要があります。

于 2008-12-14T09:49:39.170 に答える
0

「各ワーカー プロセスがそれぞれ 4Gb のメモリにアクセスする」に対する回答は上記のとおりです。/3GB スイッチを使用しない限り、デフォルトではユーザー モードで 2GB の RAM が使用されます。これは、要件に応じて使用できる場合と使用できない場合があります。アプリ/サーバーのセットアップの。カーネル モードのリソースが不足する可能性があります。

「したがって、約16Gbのメモリにアクセスできるようにする」という質問のパート2は、「アクセス」の意味によって異なります。Web ガーデンは、アプリケーション プール用に設定されたワーカー プロセスの数に達するまで、着信要求に対して別の w3wp.exe をスピンアップすることによって機能します。各 Web ガーデン インスタンスは独自のプロセスにあるため、あたかも別のアプリ プールであるかのようになり、その結果、同じアドレス空間を共有しません。したがって、アプリケーションがより多くのメモリを消費しているのは、同じアプリケーションの複数のインスタンスを実行しており、それぞれが 32 ビットの制限に制約されているためです。 http://bytes.com/groups/asp/54826-asp-sessions-web-gardens http://msdn.microsoft.com/en-us/library/ms791558.aspx

于 2008-12-19T19:21:25.687 に答える