ASP.NET v4.0 アプリケーションを、Win2008 Server x64 オペレーティング システムで実行されている新しいサーバーに移行しました。アプリケーション プールが "32 ビット アプリケーションを有効にする" = False (x64 IIS のデフォルトである必要があります) に設定されている場合、移行された asp.net アプリケーションには問題がないように見えたので、64 ビット モードで実行したままにしました。
その後、ワーカー プロセスが仮想メモリの制限をすぐに超えるため、ユーザー セッションが頻繁に中断されることが判明しました。このため、同じアプリケーションと同じアプリケーション プールを 1 つの変更した設定でテストしました。「32 ビット アプリケーションを有効にする」を True に切り替えて、「WOW64」モードで実行できるようにしました。それ以外はすべてそのままでした。まったく同じユーザー作業シナリオを使用して、両方のモードでワーカー プロセスによって消費されるメモリ量を比較しましたが、結果は少し衝撃的でした。
- ワークロードは約を消費します。WOW64 32 ビット モードで実行中は 150MB
- また、「デフォルト」の 64 ビット ワーカー プロセス モードでは、同じワークロードが約 800MB を消費します。
ワーカー プロセスが 64 ビット モードでより多くのメモリを消費することが起こるかもしれないと予想していましたが、この差は大きすぎます。
このような巨大なメモリへの影響は正常と見なされますか? どういうわけかそれを減らす/修正することは可能ですか?