2012-01-12 107 views
0

我正在使用本地網絡上工作的網站。它運行ASP.Net 2.0和IIS6。該網站使用母版頁,併爲搜索實用程序提供了一些代碼文件(C#)。有一些.js文件和加載頁面後發生的幾次ajax調用。初始服務器響應時間延遲

此時該網站並不是非常「沉重」,不應該花很長時間才能加載。出於某種原因,網站第一次加載時,在發生任何事情(20-24秒)之前會有很長的延遲。起初我認爲這可能是該網站的編譯時間,但我預先編譯了它,並沒有任何區別。

一旦訪問,網站加載非常快。經過很長一段時間(幾個小時)後續訪問將

如果它有幫助,我已經包括從螢火蟲下面的一些屏幕捕獲。

有沒有人有一個想法是什麼可能導致延遲或我怎麼可以找出發生了什麼?

enter image description here

enter image description here

回答

1

我們總是看到第一自旋了一個長的滯後時間,由於我們的內部高速緩存活動的組合,IIS旋轉起來的aspnet_wp,並建立各種數據庫的連接。

如果IIS設置爲在指定的秒數,達到內存閾值或其他閾值後重新啓動進程,您可能會在後續訪問中看到此情況。

關於初始啓動時間,您可以做的唯一事情是在啓動過程中仔細追蹤應用程序的活動。要特別注意數據庫連接和緩存,因爲我們發現這是我們大部分時間都花費在其中的地方。

對於後續訪問,我們總是刪除IIS中的默認回收時間(類似於22小時),並將其替換爲固定的時間回收。它仍然無助於第一次請求,但至少你會知道它何時發生。

如果最初的請求確實存在問題,並且您無法弄清楚如何通過代碼來減少它,您可以安排一個小型.Net exe在回收時間後10分鐘運行,並使用WebClient一次點擊該站點以避免初始化過程。