2016-02-13 68 views
2

我有一個運行在Windows Server 2008/IIS 7.5上的低流量的ASP.NET MVC 4應用程序。 我的問題是:每個瀏覽器緩慢的第一次加載或一段時間後

  • 第一請求是慢大約15秒。 (後續請求罰款)
  • 另一個請求大約2分鐘後沒有任何要求,始終得到了響應速度慢(約15秒)
  • 第一個請求,如果我做來自新的瀏覽器另一個請求,再次需要15秒

解決問題的方案(文件大小爲24 KB):

  1. 時間:16:26 - 使用Chrome - 第一個請求需要15秒。隨後的請求沒有問題。
  2. 時間:16:27 - 使用Firefox - 第一次請求需要15秒。隨後的請求沒有問題。
  3. 時間:16:30 - 使用IE 11 - 第一次請求需要15秒。隨後的請求沒有問題。

Here is all screenshots of Developer Tools/Network Tab

而且還提琴手時間輸出:

Request Count: 1 
Bytes Sent:  380  (headers:380; body:0) 
Bytes Received: 7,217  (headers:409; body:6,808) 

ACTUAL PERFORMANCE 
-------------- 
ClientConnected: 22:41:26.377 
ClientBeginRequest: 22:41:26.378 
GotRequestHeaders: 22:41:26.378 
ClientDoneRequest: 22:41:26.378 
Determine Gateway: 0ms 
DNS Lookup:   0ms 
TCP/IP Connect: 28ms 
HTTPS Handshake: 0ms 
ServerConnected: 22:41:26.407 
FiddlerBeginRequest: 22:41:26.407 
ServerGotRequest: 22:41:26.407 
ServerBeginResponse: 22:41:41.496 
GotResponseHeaders: 22:41:41.496 
ServerDoneResponse: 22:41:41.503 
ClientBeginResponse: 22:41:41.503 
ClientDoneResponse: 22:41:41.504 

Overall Elapsed: 00:00:15.1258651 

它顯示ServerGotRequestServerBeginResponse

之間15秒的延遲時間,該問題只發生在我的家。在工作或我的朋友電腦(意味着另一個ISP)沒有問題。此外,我在上網速度沒有問題,那麼我測試我的網站:

輸出ping neshoonak.ir

Reply from 94.232.172.248: bytes=32 time=67ms TTL=122 
Reply from 94.232.172.248: bytes=32 time=56ms TTL=122 
Reply from 94.232.172.248: bytes=32 time=63ms TTL=122 

輸出ping 8.8.8.8

Reply from 8.8.8.8: bytes=32 time=134ms TTL=47 
Reply from 8.8.8.8: bytes=32 time=171ms TTL=47 
Reply from 8.8.8.8: bytes=32 time=132ms TTL=47 

我測試了一些網站放在同一個數據中心我的網站位於 ,發現他們都有同樣的問題(根本沒有問題)。

我的經銷商託管說有3個數據中心,我有2個問題(只是在家裏)的問題。他建議將我的網站移至第三個數據中心。但它可能會出現在我的網站訪問者身上,我不想只爲我解決它。

請幫忙!

+0

這可能是一個帶寬問題,與您的家庭DSL相比,在您的工作場所更高。此外,您的網頁可能會獲得多個(即多個)CSS和JavaScript文件,從而導致多次網絡旅行。儘量減少JavaSript和CSS文件,並儘可能減少旅行次數。更多的行程意味着更多的頁面渲染時間。 – Sunil

+0

此外,請查看您的網站Google Chrome開發者工具中的網絡統計信息(有一個時間選項卡,可以準確指出需要多少等待時間和下載時間)。這可能會告訴你什麼是響應緩慢的根源。 – Sunil

+0

另外,你的頁面中是否有很多'inline' JavaScript和CSS?如果是,那麼這也可能導致糟糕的表現。 – Sunil

回答

0

有跡象表明,首先想到的兩個possibilies:

  1. 緩存:有一些沒有緩存的資源,因此它們需要被加載並需要一段時間。你如何識別這是否是這種情況?安裝Fiddler並打開頁面。您將看到http響應代碼。怎麼修?緩存:)
  2. 應用程序池:似乎不是你的問題,但想提及其他讀者。這發生在我的一個微軟門戶應用程序中。他們想要即時裝載,並且工作得很好......有時。我調試了幾次代碼,並對代碼進行了分析,直到它碰到我。問題是應用程序池被回收,它需要啓動並加載所有內容。我是如何修復的?我每5分鐘設置一個cron作業來打開一個頁面,這會讓應用程序加載到內存中,從而獲得接近即時的響應。

希望這會有所幫助!

+0

我在高速緩存中沒有問題。我用小提琴手,發現發送請求到服務器時出現長時間的延遲,而響應時間也沒問題 ... ServerConnected:\t 22:41:26.407 FiddlerBeginRequest:\t 22:41:26.407 ServerGotRequest:\t 22:41 :26.407 ServerBeginResponse:\t 22:41:41.496 GotResponseHeaders:\t 22:41:41.496 ServerDoneResponse:\t 22:41:41.503 ... – Talebian

+0

能不能DNS解析問題?極不可能,但你可以嘗試使用IP或設置谷歌的8.8.8.8。值得一槍。 – xmorera

+0

這裏是「ping 8.8.8.8 -t」的一部分結果: 回覆自8.8.8.8:bytes = 32 time = 134ms TTL = 47 回覆自8.8.8.8:bytes = 32 time = 171ms TTL = 47 8.8.8.8:bytes = 32 time = 132ms TTL = 47 ... 我測試了一些站點放置在我的站點所在的同一個數據中心,發現它們都有相同的問題(工作時沒有問題) 。 我的經銷商託管說有3個數據中心,我有2個問題(只在家中)。他建議將我的網站移至第三個數據中心。但它可能會出現在我的網站訪問者身上,我不想只爲我解決它。 – Talebian

0

一個很好的測試就是建立一個像www.site24x7.com這樣的監控服務,讓它從多個地點ping你的站點,你可以在那裏看到響應時間。

+0

我使用了這個偉大的網站提供的測試工具。正如我預計的那樣,響應時間並不糟糕。加利福尼亞州 - 美國:1049毫秒,多倫多 - 加利福尼亞州:530毫秒,新加坡 - SG:1787毫秒,金奈 - IN:1621,墨爾本 - 澳大利亞:1894年。今天我再次打電話給ISP,似乎只是我有這個問題。現在我只是懷疑我的調制解調器。但我不知道如何! – Talebian

+0

我曾經使用wireshark來解決連接問題,它非常好,但有一個陡峭的學習曲線 – xmorera

+0

我安裝了Wireshark,只是爲了方便測試寫了一個程序來提出請求。 [這是Wireshark 2請求的結果](http://neshoonak.ir/_data/temp/Wireshark.png)。它還顯示第一個請求延遲15秒,第二個請求罰款。 我的網站記錄器說,會話在大約22:05:08開始(爲了達到這個時間我在/ home/getdate創建了一個方法,並且我做了很多trys來找出服務器和客戶端時間之間的區別)。現在一個很大的問題是,我怎麼能知道22:04:54到22:05:08之間到達服務器的事件/數據包/請求? – Talebian

相關問題