2011-06-16 102 views
3

我正在優化我的Web服務器設置以處理大量的併發用戶,我遇到的問題之一是決定是否禁用HTTP Keep-Alive。HTTP Keep-Alive每1秒呼叫<1KB

我爲網站上的所有圖像使用CDN,所以當我的HTML頁面被請求時,我在第一次加載時下載了大約5個文件(js,css等),然後在每個連續的加載中只有HTML。

除此之外,我唯一擁有的是每秒調用一次HTTP POST更新(結果JSON通常小於1KB)。

所以,有了這些限制 - 你會認爲在服務器上禁用HTTP Keep-Alive會是一個好主意嗎?這會改善服務器可以處理的併發用戶數量嗎?

(順便說一下,我已經減少的KeepAliveTimeout/ConnectionTimeout在IIS 7.5設置爲15秒)

回答

1

從你所描述,你這是每個客戶端每秒的呼叫。所有這一切都歸結爲服務請求需要多少時間。如果我們說,服務請求需要100ms。那麼這意味着15秒的Http Keep-Alive將會有15個呼叫被調用,而不是重新建立連接,但是連接只是實際活動(或正在使用)1.5秒 - 其餘時間,實際上阻止了一些客戶端/連接(假設有客戶端)。 W/o保持活着,你可能容納8-9倍的併發客戶端。

然而,所有的說法,你必須看實際的參數做出決定。您可能擁有多少個併發客戶端以及響應時間是多少等等。最好的方法是進行模擬/負載測試來衡量性能。因爲如果你的服務器要處理預期的最大併發用戶負載保持活着,你可以保持活着。

BTW,也看到此相關的問題上SO:http keep-alive in the modern age

+0

呼叫的處理幾乎是瞬間(所以連接空閒大約950ms)。由於併發客戶端的數量非常重要,我決定嘗試使用Keep-Alive = disabled。我希望通過這種方式,我可以像你說的那樣容納更多的併發客戶端。將基於它的工作原理更新問題。 – kape123 2011-06-17 03:44:16