4

ASP.NET v4.0 アプリケーションを、Win2008 Server x64 オペレーティング システムで実行されている新しいサーバーに移行しました。アプリケーション プールが "32 ビット アプリケーションを有効にする" = False (x64 IIS のデフォルトである必要があります) に設定されている場合、移行された asp.net アプリケーションには問題がないように見えたので、64 ビット モードで実行したままにしました。

その後、ワーカー プロセスが仮想メモリの制限をすぐに超えるため、ユーザー セッションが頻繁に中断されることが判明しました。このため、同じアプリケーションと同じアプリケーション プールを 1 つの変更した設定でテストしました。「32 ビット アプリケーションを有効にする」を True に切り替えて、「WOW64」モードで実行できるようにしました。それ以外はすべてそのままでした。まったく同じユーザー作業シナリオを使用して、両方のモードでワーカー プロセスによって消費されるメモリ量を比較しましたが、結果は少し衝撃的でした。

  • ワークロードは約を消費します。WOW64 32 ビット モードで実行中は 150MB
  • また、「デフォルト」の 64 ビット ワーカー プロセス モードでは、同じワークロードが約 800MB を消費します。

ワーカー プロセスが 64 ビット モードでより多くのメモリを消費することが起こるかもしれないと予想していましたが、この差は大きすぎます。

このような巨大なメモリへの影響は正常と見なされますか? どういうわけかそれを減らす/修正することは可能ですか?

4

1 に答える 1

5

さらに調査した結果、メモリの問題はないようです。新しいサーバーにはより多くのメモリがあり、64 ビット OS アプリケーション プールで実行している間は、より大きなメモリ リソースを割り当てることができます。メモリ リークのように見えましたが、割り当てられた一定量の RAM からプロセスが追加のメモリを消費しなくなるため、メモリの問題ではないようです。回答者の皆様ありがとうございました..

于 2012-04-05T12:45:33.647 に答える