当社は、顧客向けにかなり大規模な (自己作成) ASP.NET Web サイトをホストしています。これは、Web サービス、Web サイト、画像提供 Web サイトで構成され、3 つすべてが独自の仮想ディレクトリにあります。3 つの仮想ディレクトリは、1 つのアプリケーション プールにまとめられています。プールには、両方のメモリー制限 (最大仮想メモリーと最大使用メモリー) が 500 メガバイトに設定されています。
ただし、一度に 1 人のユーザーしかいない場合でも、アプリケーション プールには多くのリサイクルが発生します。イベントログ メッセージには次のように記載されています。
アプリケーション プール 'xxxx' を提供する 'xxxx' のプロセス ID を持つワーカー プロセスは、仮想メモリの制限に達したため、リサイクルを要求しました。
ただし、Process Explorer でワーカー プロセスを観察しても、このメッセージをサポートするものは何も表示されません。両方の設定によって実際に制限されているメモリを観察するには、どのカウンターを監視する必要がありますか?
更新 1
タスク マネージャーでプロセスを観察すると、約 100 MB の「メモリ使用量」と「vm サイズ」が示されますが、プロセスは上記のメッセージと共にリサイクルされます。サーバーで使用可能な 5 GB の物理メモリ...
更新 2
Web サイトはかなり大きいですが、問題はアプリケーションの小さな部分に集中しています。(Oracle を使用して) クエリを実行し、結果をグリッドビューとリピーター Web コントロールにバインドします。結果は、簡単な説明とアイコン (画像提供 Web サイトから読み込まれる) で構成されます。10 回の検索アクションを次々に実行すると、それぞれ 9 件の結果が得られ、ワーク プロセスはメモリ使用量と約 100 MB の VM サイズを示し、リサイクルします...
更新 3 画像提供 Web サイトの使用方法を切り替えても、より良い結果にはなりません。ですから、問題は別のものであると言っても過言ではないと思います。