2012-01-12 12 views
0

私は現場で私たちのローカルネットワーク上でホストされているサイトで作業しています。 ASP.Net 2.0とIIS6を実行しています。サイトではマスターページを使用しており、検索ユーティリティ用のコードファイル(C#)がいくつかあります。いくつかの.jsファイルがあり、ページが読み込まれると、いくつかのajax呼び出しが行われます。初期サーバーの応答時間の遅延

サイトはこの時点ではあまり「重い」ものではなく、読み込むのに時間がかかりません。何らかの理由でサイトが初めて読み込まれると、何かが起きるまでに非常に長い時間がかかります(20〜24秒)。最初はサイトのコンパイル時だと思っていましたが、あらかじめコンパイルしても差はありませんでした。

一度訪れた場合、サイトは非常に高速に読み込まれます。それが助け場合は長い間(数時間)、その後訪問する

した後、私はいくつかの画面は以下の放火犯からキャプチャ用意しました。

誰でも遅延を引き起こすか、またはどのように私は何が起こっているかを把握できたことができるかのアイデアを持っていますか?

enter image description here

enter image description here

答えて

1

我々は常にによる社内のキャッシング活動の組み合わせに最初のスピンアップに長いタイムラグを参照してください、aspnet_wpをスピンアップ、および各種データベースへの接続を確立するIIS。

IISは、指定された秒数、メモリのしきい値に達した、または他のしきい値後にそのプロセスをリサイクルするように設定されている場合は、おそらくまた、その後の訪問でこれを確認できます。あなたは慎重に、起動時にアプリケーションの活動をトレースされた初期のスピンアップ時間について行うことができる唯一のことについて

。データベースの接続とキャッシュに特に注意を払ってください。これは、これが私たちの時間の大部分が費やされた場所であることがわかったからです。

、後続の訪問については、我々は常に(22時間のようなものがある)IISのデフォルトのリサイクル時間を削除し、一定時間のリサイクルと交換してください。それでも最初のリクエストは役に立ちませんが、少なくともそれがいつ発生するかはわかります。

最初のリクエストが本当に問題で、コードで減らす方法を見つけられない場合は、リサイクル時間の10分後に実行する小さな.Net exeをスケジュールし、WebClientを使用してサイトを一度ヒットします初期化プロセスを途中で止めるためです。

関連する問題