2009-08-17 5 views
4

IIS7にASP.Net Webサイトがあり、サーバーのコア数に合わせてMaxProcessesを増やす予定です(4​​コア、64ビットWindowsサーバー2008)。ASP.Netは状態サーバーとキャッシングを使用してMaxProcesses(web garden)を増やす

ウェブガーデンを作成するためにMaxProcessesを増やすと、アウトオブプロセス状態のサーバーを設定する必要があるため、ASPStateサービスを使用してワーカープロセス間でセッションを共有しようとしています。

しかし私には分かりませんが、キャッシングも共有されていますか?または、キャッシュの新しいカスタムプロバイダを設定する必要がありますか?

答えて

4

インプロセスキャッシュはWebガーデンでは共有されません。

ここには本当のことがあります...私はあなたがしていることの背後にある動機に疑問を呈します。オブジェクトがより効率的にコアを使用する場合は、ASP.NETアプリケーションを実行している要求スレッドまたはワーカースレッドの数を増やすことができます。複数のw3wpプロセスを実行することは、必ずしも必要なオプションではありません。スレッドとのスケーリングが不十分な古いインプロセスCOMオブジェクトのような制約のあるリソースがある場合は、複数のプロセスでどのように拡張できるかがわかります。しかし、実際にあなたが何をしているのか、理由を知っていなければ、その設定から穏やかに後退して1にしておきます.-)

+0

マシンのパフォーマンスを向上させるための自然なオプションとして、長期的には複数のサーバーにまたがるように計画しているので、ウェブガーデンからよりスムーズに移動し、その場合はmemcachedプロバイダーを検討しています。 完全に正直言って、私はワーカープロセスあたりのスレッド数を増やすオプションを知らなかったので、それはプロセスレベルと見なされました。 – rjlopes

+0

http://blogs.msdn.com/b/david.wang/archive/2006/03/14/thoughts-on-application-pools-running-out-of-threads.aspx ブロックするコードがある場合スレッドやWeb Gardenを追加することで並行性を高めることを検討したいかもしれませんが、これは短期的な可用性の出現をもたらし、生のパフォーマンスを低下させ、非実行コードを解決せず、必然的に遅れます。 –

3

キャッシュは共有されません。ウェブガーデンは複数の "w3wp"プロセスを作成します。各プロセスには独自のキャッシュがあります。

3

キャッシュを共有する場合は、MemCached Win32(Enyimキャッシュクライアント)を使用するか、新しいMS製品Velocityを使用します。このようにして、1つのサーバーを超えて移動すると、すでにそれを処理するためにアーキテクチャ上設定されています。