0

IISサーバーで再起動しているw3wp.exeがあります(以下の仕様を参照)。メモリは徐々に約3Gまで上昇し、その後約1〜2分ごとにランダムに再起動します。

メモリ使用量: ここに画像の説明を入力してください

奇妙なことに、このメモリの低下(再起動のように見えます-ところで...アプリプールはリサイクル/再起動されません)が発生すると、GETリクエストはキューに入れられますが、サービスがウォームアップ/起動するとすぐに処理されます(クライアントへの応答の遅延-最初は応答時間の遅延を時々報告していました)。

このリンクをたどって、.exeが再起動するとスタックダンプを取得しましたが(プライベートバイトは〜0になります)、サービスが再起動するとdiag debugで何もログに記録されません(.dmpファイルはありません)。

Webサーバー(IIS)ログに大量の警告が表示されますが、それだけです。

プロセスサービングアプリケーションプール「MyApplication」で、Windowsプロセスアクティベーションサービスとの致命的な通信エラーが発生しました。プロセスIDは「1732」でした。データフィールドにはエラー番号が含まれています。

質問:これがメモリの制限であるかどうか、キャッシュがスレッド/タスクでうまく機能していないかどうか、キャッシュが爆発しているかどうか、アプリケーションを再起動するウォッチドッグサービスがあるかどうかなどはわかりません。誰かがw3wp.exeの再起動と同様の何かに遭遇しましたか?diagdebugが再起動するとダンプを返さないため、わかりにくいです。

仕様:

  • GETリクエストを処理するMVC4WebAPI(コードはdebug = trueのデバッグビルドです)
  • キャッシュエビクションが2時間に設定されたモデルおよびビジネスオブジェクトでMemoryCacheを使用します...使用
  • 新しいリクエストごとのタスク(TPS)。
  • データベース:SQL Server 2008R2
  • Webサーバー:Windows Server 2008R2 Enterprise SP1(64ビット、64G RAM)
  • IIS 7.5
  • 1つのアプリケーションプール...このサーバーで実行されている他のLOBアプリケーションはありません
4

1 に答える 1

1

最初のステップは、テスト環境で問題を再現することです。ある種の負荷生成アプリをセットアップして(自分で簡単に作成できます)、同じ問題が発生します。次に、web.configでデバッグをオフにして、問題が解決するかどうかを確認します。次に、リリースビルドに変更して、もう一度テストします。

私はmemorycacheを使用したことがありません-キャッシュの削除時間を短縮するか、単にオフにして、問題が解決するかどうかを確認してください。幸運を :)

于 2013-02-22T02:39:41.777 に答える