531
windows
負載均衡性能與測試概要說明__性能壓測_技術運維分享_負載均衡-阿裏雲
1. ,負載均衡性能相關配置說明
,當前架構下與負載均衡性能相關的配置說明如下:
- ,負載均衡通過共享千兆網絡與後端,ECS進行數據交互。
- ,單個監聽公網帶寬峰值,1Gbps 。
- ,單個監聽私網帶寬峰值,1Gbps 。
- ,HTTP-,會話保持,-Cookie超時時間默認,3600毫秒,最高,86400秒。
- ,TCP-,會話保持,-超時時間默認,1000毫秒,最高,86400秒。
- ,單個,key的,API訪問頻率限製。
- ,不同類型協議服務等待後端響應的超時時間:
- ,TCP: 900,秒
- ,UDP: 300,秒
- ,HTTP: 60,秒
- ,HTTPS,:,60秒
,2. 為何,7層比,4層服務性能低
,負載均衡集群底層采用,LVS(,4層)和,Tengine(,7層)實現。其中,4層監聽經過,LVS後直接到達後端服務器;而,7層監聽經過,LVS後,還需要再經過,Tengine,最後達到後端服務器。所以,7層比,4層多了一個處理環節,導致,7層性能沒有,4層性能好。
,另外,除了,7層服務自身架構導致比,4層性能低外。如下場景也可能導致,7層服務性能不高。
,客戶端端口不足
,該場景尤其容易發生在大並發訪問時(比如壓測)。負載均衡默認會移除,TCP連接的,timestamp屬性,導致,Linux協議棧的,tw_reuse(,TIME_WAIT狀態連接複用)無法生效,進而引起,TIME_WAIT狀態連接堆積並最終導致客戶端端口不足。客戶端端口不足會導致建立連接失敗。
,解決方法:
,可以通過如下兩種手段來規避該問題:
- ,客戶端使用長連接代替短連接進行業務訪問。
- ,配置客戶端通過發送,RST而非,FIN報文斷開連接(設置,Socket的,SO_LINGER屬性),避免產生,TIME_WAIT狀態連接。
後端Linux ECS服務器accept隊列滿
,負載均衡後端,Linux ECS服務器的,accept隊列滿,導致後端服務器無法回複,SYN ACK報文進行正確響應,最終導致客戶端連接超時。
,解決方法:
,Linux,默認的核心參數,net.core.somaxconn值為,128,執行如下指令將其調整成,1024或更大值並重啟服務器上的應用生效:
,sysctl -w net.core.somaxconn=<1024>
,後端服務器連接過多
,由於架構設計的原因,使用,7層負載均衡服務時,用戶長連接經過,Tengine後會轉為短連接。這可能會導致後端服務器連接過多,進而影響壓測性能。
,後端服務器所依賴的應用成為瓶頸
,請求經過負載均衡達到後端服務器後,後端服務器本身負載都正常。但由於後端服務器上的應用又依賴其它應用(比如數據庫等),那麼被依賴應用的性能也可能會成為壓測瓶頸。
,後端,ECS健康檢查狀態異常
,如果有後端,ECS健康檢查失敗,或者由於業務不穩定導致健康檢查狀態頻繁切換(好到壞,又從壞到好,反複變化),也會影響最終的壓測性能。
,3. 負載均衡性能測試操作指導
,基於前述因素,建議用戶在負載均衡性能測試時關注如下要點:
,注意事項
- ,壓測負載均衡轉發能力,建議使用短連接
,一般來說壓測除了驗證會話保持,均衡性等功能外,主要驗證的是負載均衡的轉發能力,因此建議使用短鏈接,,用於測試負載均衡和後端服務器處理能力。但使用短連接測試時需要注意上述客戶端端口不足問題。 - ,壓測負載均衡吞吐量建議使用長連接,用於測試帶寬上限或特殊業務。
- ,壓測工具的超時時間建議不要設置過大(,5秒之內)。超時時間過大的話,測試結果會體現在平均,RT加長,不利於判斷是否已到達壓測水位。超時時間調小,測試結果會體現在成功率上,便於快速判斷壓測水位。
- ,後端服務器提供一個靜態網頁用於壓測,以避免應用邏輯帶來的損耗(,I/O, DB等)。
壓測工具建議
,不建議使用,Apache ab進行壓測,因為,ab在大並發場景下存在問題,會存在,3s,,6s,,9s階梯式停頓的現象。另外,,ab會通過判斷,content length來確定請求成敗,在負載均衡掛載多台後端服務器的時候,返回的,content length不一致,會幹擾測試結果。
,建議使用阿裏雲,PTS (,,https://pts.aliyun.com,),進行壓測。可以選擇多個,Client作為壓測源,測試結果清晰,並且可以通過配置監控,獲取壓測時後端服務器的性能數據。
,建議壓測配置
,壓測負載均衡能力時建議進行如下配置:
- ,監聽不開啟會話保持功能,否則壓測源較少時壓力可能會集中到後端個別服務器。
- ,監聽關閉健康檢查功能,減少健康檢查請求對後端服務器的影響。
- ,用多個,client(>5)進行壓測,源,IP分散,能夠更好的模擬線上實際情況。
,注,:上述設置僅用於負載均衡能力測試,用戶生產環境壓測還需根據實際需求進行配置。
,使用,PTS簡單壓測示例
- ,, ,購買兩台,ECS用作後端服務器,服務器規格:, CPU 1核,內存, 512M,, CentOS 6.3 64位。
- ,購買一個負載均衡實例用於提供負載均衡服務,並綁定此前購買的,ECS作為後端服務器。
- ,分別創建,TCP、,HTTP監聽各一個,後端端口都設置為,80。
- ,在前述,ECS上都安裝,apache web server,用於提供,web服務,並設置默認首頁為,index.html後啟動服務。
yum install -y httpd echo "testvm" > /var/www/html/index.html service httpd start
, 5. 訪問本機,80端口,確認,web服務可用:, curl localhost
6. 在PTS中創建測試腳本, 注意關閉長連接和設置超時時間:
- ,超時時間,5秒:, PTS.HttpUtilities.setTimeout(5000)
- ,關閉長連接 :,PTS.HttpUtilities.setKeepAlive(False)
, 7. 開始壓測,等待壓測完畢檢查壓測結果即可。
最後更新:2016-07-12 13:21:11
上一篇:
故障賠償說明___相關協議_負載均衡-阿裏雲
下一篇:
健康檢查的相關配置,是否有相對合理的推薦值?__健康檢查_技術運維分享_負載均衡-阿裏雲
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲