
我正在將我們的網路和資料庫託管遷移到所有新電腦上的新環境。我最近使用執行了負載測試WAPT從多個分散式客戶端產生負載。伺服器有足夠的空間來處理流量負載,但我在負載測試期間看到傳入流量的奇怪模式。
這是我們設定的要點:
- 在 Win 2k8 伺服器上執行 MS Forefront TMG 2010 的防火牆伺服器
- 請求路由由防火牆電腦上的 IIS 應用程式請求路由完成
- Web 伺服器是資料庫伺服器(主機作業系統)上的 Hyper-V VM
- 這些機器配備了六核心雙 CPU(總共 12 個進程)
- 運行 IIS 7.5 的 Web 伺服器
- 使用 ASP.NET 2.0 建立的 Web 應用程序,前面有 1 個 ISAPI 過濾器(Url Rewrite)
我在負載測試期間看到的是請求全部突發。儘管我有 7 個不同的分散式用戶端發送流量負載,但每次都會收到大約 300-500 個請求。
效能監視器顯示幾乎所有計數器都在這種模式下移動,其中突發請求的請求/秒躍升至 70,排隊請求躍升至 500,當前請求躍升,CPU 躍升,等等。然後,一旦處理完這組請求,它就會有近 10 秒的平靜時間,幾乎什麼都沒有發生。 0-5 個請求/秒,0 個排隊請求,最少的 CPU 使用率。然後,在 10 秒不活動後,另一次爆發出現,再次使所有計數器達到峰值。
我無法弄清楚的是,當我知道生成的負載不是以這種方式發送時,為什麼請求會突然出現,特別是考慮到各種負載生成客戶端都以不同的時間間隔發送流量,並且每個客戶端之間的思考時間是隨機的要求。 Hyper-V 之間的層中或硬體中是否存在某些可能導致請求合併在一起的內容?
這是我正在查看的內容,突出顯示的指標是請求/秒,但其他關鍵計數器也隨之而來:請求排隊(我顯然希望盡可能保持接近 0)。
對此有什麼想法嗎?
答案1
經過大量測試和研究,我透過 WAPT 負載測試工具解決了這個問題。有些設定經過調整後會改變這種模式。
當我設定 WAPT 實例並在 Web 伺服器和產生負載的機器上使用性能監視器時,我確認這是 WAPT 測試工具的產品。可以很容易地看到網路介面上發送的資料包的峰值時間間隔和時間與 Web 伺服器上的每秒請求數相同。