2015-06-02 34 views
1

我有運行自己託管的web api的單個worker角色的雲服務。 嘗試使用xxx.cloudapp.net地址從另一個雲服務(在同一個vnet中)使用此web api。但表現非常不穩定。有時幾百次請求後,http請求會凍結一段時間。像Azure負載均衡器這樣的接口會限制我的請求。Azure負載平衡器性能不穩定

這裏是Apache工作臺輸出與再現冷凍(在相同的vnet RAN從另一個VM):

ab -c 10 -n 1000 http://xxx.cloudapp.net/ping 
<..>  
Time taken for tests: 39.970 seconds 
Complete requests:  1000 
Failed requests:  1 
    (Connect: 1, Receive: 0, Length: 0, Exceptions: 0) 
<..> 
Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  0 19 402.6  0 9017 
Processing:  0 360 2307.4  15 21046 
Waiting:  0 318 2178.6  0 21046 
Total:   0 379 2339.6  16 21046 

Percentage of the requests served within a certain time (ms) 
    50%  16 
    66%  16 
    75%  16 
    80%  16 
    90%  16 
    95%  17 
    98% 9015 
    99% 9032 
100% 21046 (longest request) 

使用本地IP(例如10.0.0.X)時,有不凍結。 嘗試使用web角色/ iis獲得相同的結果。

爲什麼會發生這種情況?如何避免這種情況?我不想使用本地IP,因爲那樣我會鬆動交換功能。

+0

這應該被張貼到ServerFault,關聯到你的虛擬機,因爲它的基礎設施,而不是編程。這就是說 - 你是否試圖使用ip地址而不是dns名稱來測試你的api調用,以消除潛在的dns解析問題? –

+0

是的,我嘗試了IP - 相同的結果。 – Dissimilis

回答

2

我知道您正在執行從一項雲服務到另一項雲服務的性能測試。

Azure負載平衡器不會節流。它是一個具有極高限制的基礎設施組件。可能發生的是你可能運行我們的或端口。當你創建出站連接時,我們SNAT來源VIP。自從您SNAT以來,您將獲得64K端口的限制。 驗證這一點,最好是一個公共IP運行PERF測試(https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-instance-level-public-ip/),然後運行測試再次

伊夫