1

次の記事に記載されているように、一部の .NET アプリケーション プールは、最初の要求で非常に遅くなります (約 x4 倍)。問題はアプリケーション プールのみに関係します。速度が遅いものもあれば、同じ条件でないものもあります: Web アプリ、構成、ファイルのアクセス許可など。

だから私の質問は、どうすればこれが起こるのでしょうか? 両方を再起動した後でも、1 つのアプリケーション プールが同じ設定の他のアプリケーション プールよりも遅くなる可能性があります。それを修正/防止する方法はありますか? アプリケーション プールは、いったん遅くなると、停止してから開始しても、再び速くなることはありません。

すべてのテストが「最初の要求」になるように、すべてのテストの前にアプリケーション プールをリサイクルするようにしました。

私は同じ問題を見つけましたが、ここで誰かがこの奇妙な問題の解決策を見つけたのだろうか?

asp.net の初期化速度の一般的な問題ではないことに注意してください。同じサーバー上の同じコードを、汎用 (高速) と壊れた (低速) の 2 つのアプリ プールと比較します。2 つのアプリケーション プール (設定は同じですが、1 つは不当に「遅い」) を 2 つの同一の (同じ) 些細な (DB アクセスがないなど) 間で切り替えて、動作を変更する asp.net アプリケーションをテストします。

質問は次のとおりです。

  • アプリプールが突然壊れる (遅い) のはなぜですか?
  • アプリプールが「遅く」ならないようにするには?
  • 壊れたアプリ プールを修正するには? はい、無制限の新しいアプリ プールを作成できますが、とにかく、それは奇妙で、運用環境には受け入れられません。

UPD:問題が「遅い」アプリプール自体ではなく、ITS NAMEに限定されていることに気付きました! "slow" アプリ プールの名前を変更すると、再び "fast" になります。以前に名前が変更された (または削除された) 「遅い」という名前の新しいアプリケーション プールを作成すると、このアプリケーション プールは再び遅くなります!

4

3 に答える 3

2

同様の問題があり、アプリケーション プールが障害状態にあるという WCF エラーを生成していました。新しいアプリ プールを作成して同じコードをテストしたところ、問題なく動作しました。次に、古いアプリ プールを削除し、新しいアプリ プールの名前を古いアプリ プールに戻すと、問題が再発しました。そのため、アプリ プールが削除されたときに削除されない、アプリ プールに関連する場所に何かが保存されているようです。非常に奇妙です..名前を別の名前に変更すると、再び機能します。しかし、元の名前に戻すと、エラーがスローされます! アプリ プール名を変更し続ける必要がないことを願っています..

于 2013-04-10T13:54:41.423 に答える
1

笑。これは、プル型芝刈り機を始動させるときのようなものです。初期リクエストを実行してデータベースを初期化するには、時間がかかります。以前は、SharePoint サーバーで IIS リセットを行うたびに、これに気付きました。サイトがリクエストを開始する前に、web.config を取得し、データ コンテキストまたはデータベースに接続し、多くのことを実行する必要があります。実行して、すべてのコンポーネントとランタイムを配置したら、スムーズですが。一般に、iisreset を必要とするメンテナンスは夜間または営業時間外に行うのがよいため、ユーザーが最初に作業を開始したときは、はるかに迅速です。あなたが最も望んでいないのは、あなたのサイトに最初にアクセスするCEOまたは副社長です。

また、余談ですが、アプリケーション プールが多いほど、より多くのメモリが必要になります。SharePoint アプリケーション プールでは、各プールが 250 MB のメモリを必要とします。使用量とリソースの消費を軽減するための最善の策は、リクエストに対して何らかのラウンド ロビンまたは負荷分散を行う複数の Web サーバー ファーム/クラスターにファーム アウトすることです。特定の時点でヒットするユーザーが多いほど、最初のリクエストは遅くなります。

于 2013-04-02T15:25:37.800 に答える
0

デフォルトでは、アプリケーション プールは一定期間後にリサイクルするように設定されています。デフォルトは20分だと思います。リサイクル後、最初のリクエストで再ロードする必要があります。それはおそらくあなたが経験していることです。

于 2013-04-02T15:25:34.643 に答える