Iis-7

IIS7 的 MaxKeepAliveRequests(使用 NLB)

  • September 21, 2011

我們有一個 IIS7 在 NLB 集群的多個節點上執行。NLB 節點設置為 Affinity:None,以便新連接分佈在它們之間。我們希望啟用 KeepAlive 以便獲得更好的性能,但我們發現當集群中的一個節點消失時,它的所有流量都會轉移到其他節點但永遠不會返回。儘管我們正在執行 Web 服務,但我們只有少數客戶端執行 CPU 密集型任務,因此我們發現一台伺服器將被毆打致死,而另一台則坐在那裡無所事事!

我們想要像 Apache 的 MaxKeepAliveRequests 這樣的東西,它限制給定連接上的請求數量,以便 IIS 定期強制客戶端重新連接,從而平衡集群。

這是 IIS7 支持的嗎?這是“正常”人所做的嗎?

我找不到合適的解決方案,所以自己寫了。我已經記錄了 IIS 和 NLB 中的配置設置。本文提供了實現 MaxKeepAliveRequests 設置所需的 HTTP 模組程式碼,以確保沒有客戶端仍然粘在 NLB 集群中的同一節點上。

使用 IIS 和 MaxKeepAliveRequests 跨 NLB 進行連接平衡

http://www.bigsoft.co.uk/blog/index.php/2011/09/21/connection-balancing-across-nlb-using-iis-and-maxkeepaliverequests

如果它是一個真正的無狀態會話,您可以在 IIS7 中完全禁用 KeepAlive:

appcmd set config /section:httpProtocol /allowKeepAlive:false

如果大部分工作僅由少數客戶端完成,這不應該增加大量成本。不過,請務必先對其進行測試。

引用自:https://serverfault.com/questions/269512