ASP.Net 2.0 Webアプリケーションは、Windows Server 2003上でうまく動作していました。メモリやCPUの使用量が急上昇しているなど、規模を拡大する準備が整い次第、可用性の高い大規模なサーバーが必要になると判断しました。Windows Server 2003から2008への移行時に大幅なパフォーマンス低下(IIS 6からIIS 7へ)
IIS 7の共有構成を利用するために、Windows Server 2008に移行することを決定しました。私たちの開発環境と統合環境では、2008/IIS 7でOSとアプリケーションを再現しました。しかし、真実は、まだ生産のような負荷をシミュレートする良い方法を持っていないし、私たちの環境を正確に再現することはできません(リソースは限られています)。だから、我々が生産に転じた後は、2003年より2008年にパフォーマンスが大幅に悪化していることに驚いた。
また、プロセスでは32ビット環境から64ビットに移行しており、また、ASP.Net 3.5 dllをプロジェクトに組み込みました。
メモリ使用量は屋根を通っていますが、私はそれについて心配していません。これは、Server 2008のメモリのオーバーヘッドが原因であると考えています。そのため、RAMを増やすとその問題が解決される可能性があります。問題は、2003/IIS 6環境でこれまでに見たことのない99%のCPU使用率にプロセッサースパイクが遭遇していることです。
誰も以前にこれらの問題に遭遇しましたが、解決策/見た目には何か提案がありますか?今すぐ次のことを行っています:
1)メモリを追加して購入する時間。
2)アプリケーションプール制限を設定して購入する時間:CPUが99%の負荷に達するとw3wp.exeをシャットダウンします。アプリケーションプールをリサイクルするオプションがないので、停止しているアプリケーションプールをリサイクルするスケジュールされたタスクを実行しています。
3)クラシックモードと統合モードでアプリケーションプールをプロファイリングし、どちらが優れているかを確認します。
その他のアイデアは大歓迎です。
CPUを増やすプロセスは、ワーカープロセス自体です。これは、アプリケーションプールがスピンアップしたときに発生する断続的な問題のようです。 W3WP.exeは99%に達しましたが、あなたがそれを殺すと、次にスピンアップするときに動作します。別のユーザーがStack Overflowで同様のことを報告しました。 コードは同じです。 コンパイルオプションは適切です。私はそれらを見てみましょう。イベントログはスキャンしましたが、もっと深く見ていきます。 ご質問いただきありがとうございます。 –
Whoa!あなたは神の恐れを私の中に入れました。私はこれについてもっと聞くまで、2008年にサーバーをアップグレードすることは非常に多様です。 –
@Larryは、初期化子/コンストラクタにあるコードをチェックすることができます。 –