2

同じ Web サイトにサービスを提供する 2 つの同一の負荷分散 Web サーバー (ws1 と ws2) があります。現時点では、どちらにもいくつかのクローラーがあり、PDF や大量の画像 (1 ページあたり平均 25 程度) を含むページなどをクロールします。両方のサーバー間で最大 60 人の同時ユーザーがいますが、クローラーが圧倒的に多くのリクエストを行っています。ws1 の IIS アプリケーション プールは最大 500 MB の RAM を消費し、ws2 のアプリケーション プールは最大 2 GB の RAM (各サーバーで 4 GB を使用可能) を消費しています。これらの消費レベルは、数時間持続しています。静的キャッシュと静的圧縮を行うように IIS を構成しましたが、RAM の消費に影響を与えるとは考えられません。

問題は、ws2 の RAM がほぼ限界に達しており、そのサーバーの Web ページの読み込みが ws1 よりもかなり遅いことです。これはエンド ユーザーにとって好ましくありません。

私の質問:

  • 利用可能な RAM の 50% (ws2 では ~2GB) は、アプリケーション プールが消費するにはかなりの量のように思えますが、そうですか?
  • 特にPDFや画像などのより大きなリクエストに関しては、サーバーがリソース、特にRAMをより適切に管理できるようにするために、プログラミング/構成に関する考慮事項はありますか?

現時点では、これが非常に一般的であることはわかっています。他にどの情報を含めると役立つかわかりません。フィードバックを残してください。この質問をより詳細に更新できます。

4

1 に答える 1

0

最善の出発点は、がそのメモリをすべて使用しているかを判断することです。商用プロファイラーのような

http://www.red-gate.com/products/ants_performance_profiler/index.htm

http://www.jetbrains.com/profiler/

IIS で実行されているコードをプロファイリングできます。開発環境で問題を再現できる場合は、Visual Studio のメモリ プロファイラーでもメモリ使用量を診断できるはずです (おそらく、運用 IIS インスタンスに対してスタンドアロンで使用する方法があります...それについてはわかりません)。

アプリケーションが割り当てたメモリとその目的を確認してください。

于 2012-12-11T20:17:14.927 に答える