在高峯期,我們的Web應用程序出現性能問題,當前它在一個2003 IIS6 Web服務器和一個SQL Server 2005數據庫服務器之間分開。數據庫服務器上的查詢時間看起來很好(大約30ms),CPU很低(低於20%),但查詢可能需要很長時間才能在Web服務器上執行(超過1秒)。SQL Server 2005網絡IO等待時間(ASYNC_NETWORK_IO等待類型)問題
我在perfmon尋找線索,並看到平均網絡IO等待時間爲〜400ms,這可以很好地解釋性能差異。我還在SSMS內部運行了一些查詢,並且看到每秒都有大約10,000毫秒的累積ASYNC_NETWORK_IO等待類型。
從一些研究中,似乎問題是網絡容量不足,或者Web服務器沒有足夠快地處理結果。我該如何去調查它是什麼,然後解決?
我們使用NHibernate作爲我們的數據層,所以根據我所知沒有使用DataReader。沒有已知的查詢會返回大型結果集,儘管有一個表具有包含壓縮XML文檔的列。
在此先感謝
附加請求信息
- SQL Server設置爲使用TCP/IP 和共享內存協議
- 我們做每個頁面,沒什麼大約4 DB請求荒謬的
- 在高峯時間DB服務器發送1.5MB /秒
- 在峯值時,Web s erver CPU大約60%
- AT峯值,Web服務器NIC負載爲13MB /秒。 8MB正在發送,5MB正在接收。同樣的NIC處理SQL和HTTP流量
- 我們確實使用了一些緩存,但應用程序是非常動態的,所以需要多達大部分時間
在perfmon中,您是否有一張數字表示網卡當前正在通過的秒數? – Andrew 2010-07-01 22:21:14
當前網絡接口\發送的字節數/秒爲〜560,000,儘管我們目前沒有處於高峯時間,網絡IO等待時間爲0ms。這是我應該檢查的perfmon stat嗎?我將在明天更新問題,並提供發生問題時的高峯時段的統計數據。 – 2010-07-01 22:33:05
字節/秒足以顯示每秒半兆,這不是任何想象中的高數字。 – Andrew 2010-07-01 22:39:52