Web-Server
添加清漆會導致 IIS 因流量減少而變慢?
我們正在嘗試將清漆放在我們的 IIS 7.5 場前。所述農場處理 3 個網站(站點 A、B 和 C) - 清漆僅在 A 前面。
當我們添加清漆時,我們獲得了 75-90% 的命中率,但我們的 IIS 場實際上減慢了很多,以至於通過 IIS 場的請求超時。
但是,當我們移除清漆時,整個 SiteA 執行“足夠快”(約 500 毫秒響應時間),並且我們的超時大部分都消失了。站點 B 和 C 的性能不受影響。
IIS 中是否有一些我們應該調查的設置?應用程序池超時設置為預設值 20 分鐘,但由於這些站點總是有流量(整個場的 30-200 請求/秒),我的印像是應用程序池超時不會是一個因素。
這是正常時間 IIS 中 SiteA 的平均 time_taken/min:
下面是我們從 IIS 提供所有流量(綠色)然後插入清漆(藍色)時的樣子:
如您所見,在 varnish 開始為大多數流量提供服務後約 40 分鐘,IIS(黃色)決定顯著減慢速度。我們在一天中的不同時間點都這樣做了,我們需要 10 分鐘到 3 小時才能見證我們的第一次大幅減速。
回收應用程序池是使速度恢復的原因(藍色在 15:30 之前跳升),但最終它很快又變慢了。移除清漆並將全部流量放在 IIS 集群上(藍色下降)使事情恢復速度。
任何人都知道還有什麼需要監控和/或設置(IIS 或清漆)來調整?
看來我們發現了我們的問題——它與 Varnish 或 IIS 無關。ASP.NET 程式碼中有一個錯誤。它被設置為創建與數據庫的連接,並且在 X 分鐘不活動後,它將關閉連接。錯誤是它從未嘗試重新打開關閉的連接。
如果您從系統中卸下負載,這是有道理的,它開始崩潰。它實際上需要足夠的流量來保持連接打開。