NLB具備超高效能和自動彈效能力。實際業務情境中如您有NLB壓力測試需求,可參考本文進行壓力測試。
壓測拓撲
以下為您介紹標準壓測拓撲和單VIP壓測拓撲。通常情況下,預設使用標準壓測流程,在少數情境中可選擇單VIP壓測流程,具體請查看壓測方法和可能導致壓測效能低的原因。
標準壓測拓撲
單VIP壓測拓撲
壓測方法
壓測指標說明
NLB有三個關鍵計量:建立串連數、並發串連數和處理資料量(請求和響應)。每一個指標的壓測方法不一樣。
壓測建立串連數指標建議使用短串連,用於測試負載平衡服務與後端伺服器的建立處理能力。
建議使用簡單的心跳服務測試,減少過多的頻寬消耗帶來的影響。使用短串連測試時,需要注意用戶端連接埠不足的問題。
壓測並發串連數指標建議使用長串連,用於測試負載平衡服務與後端伺服器的並發處理能力。
每一條長串連建議使用簡單的心跳服務測試,起到保活會話的作用。使用長串連測試高並發能力時,同樣需要注意用戶端連接埠不足的問題。
壓測處理資料量建議使用長串連,用於測試頻寬上限或特殊業務。
壓測工具的逾時時間建議設定一個較小值,如5秒。因為逾時時間太大,測試結果顯示平均回應時間加長,導致不利於判斷是否已經到達壓測水位。逾時時間調小,測試結果會體現在成功率上,便於快速判斷壓測水位。
監聽配置建議
壓測時,監聽配置建議如下。
效能測試服務的5000並發規格能夠提供5個及5個以上的公網IP。
伺服器組配置建議
壓測時,伺服器組配置建議如下。
不建議使用基於源地址的一致性雜湊調度演算法,否則壓力會集中在個別後端伺服器上。如果需要會話保持,可以選擇四元組雜湊(源IP地址、目標IP地址、源連接埠、目標連接埠),以增加雜湊值的多樣性。調度演算法請參考負載平衡調度演算法介紹。
建議關閉健全狀態檢查功能,減少健全狀態檢查對後端伺服器的訪問請求。
開啟“用戶端源地址保持”功能時,建議使用單VIP壓測拓撲。若使用標準壓測拓撲,當壓測使用的用戶端數量較少或使用基於源地址的一致性雜湊調度演算法時,會增加後端伺服器會話衝突的可能性。
關閉“用戶端源地址保持”功能時,此時NLB會使用自身IP與後端伺服器建立串連,因為系統為每個NLB執行個體提供的源地址有限,需要保證足夠的後端壓測伺服器數量,避免並發串連數受限。
壓測工具建議
不建議您使用Apache ab作為壓力測試工具:Apache ab在大量並發情境下存在3秒、6秒、9秒階梯式停頓的現象。Apache ab會通過判斷content length來確定請求是否成功,而NLB掛載多台後端伺服器時,返回的content length會不一致,導致測試結果有誤。
可能導致壓測效能低的原因
若發現壓測效能低,可能是以下原因造成的:
用戶端連接埠不足
在進行壓力測試時,用戶端連接埠不足會導致串連建立失敗。負載平衡會預設抹除TCP串連的timestamp屬性,Linux協議棧的tw_reuse(time_wait狀態串連複用)無法生效,time_wait狀態串連堆積導致用戶端連接埠不足。
解決方案:用戶端使用長串連代替短串連。使用RST報文中斷連線,即socket設定SO_LINGER屬性。
後端伺服器accept隊列滿
後端伺服器accept隊列滿,導致後端伺服器不回複syn_ack報文,用戶端逾時。
解決方案:預設net.core.somaxconn的值為128,執行
sysctl -w net.core.somaxconn=1024
命令更改net.core.somaxconn的值,並重啟後端伺服器上的應用。後端伺服器數量較少
關閉伺服器組的用戶端地址保持功能,NLB會使用自身地址與後端伺服器建立串連,預設情況下一個後端伺服器支援12萬並發串連,如果後端伺服器數量較少,也會限制並發串連的壓測效能。
解決方案:如果是TCP或UDP監聽,建議開啟伺服器組的用戶端地址保持功能;如果是TCPSSL監聽,建議增加NLB後端伺服器數量或搭配Auto Scaling。
後端伺服器依賴的應用成為瓶頸
請求經過負載平衡到達後端伺服器後,後端伺服器本身負載正常,但由於所有後端伺服器上的應用又依賴其他應用,例如資料庫,當資料庫成為瓶頸時,也會引起效能降低。
解決方案:根據實際情況清理後端伺服器上不需要的應用。
後端伺服器的健全狀態檢查狀態異常
在壓測時,容易忽略後端伺服器的健全狀態檢查狀態,如果有後端伺服器健全狀態檢查失敗或者健全狀態檢查狀態經常跳躍(成功到失敗,又從失敗到成功,反覆變化),也會導致壓測效能低。
解決方案:建議關閉健全狀態檢查功能,減少健全狀態檢查對後端伺服器的訪問請求。
後端伺服器會話衝突
若使用標準壓測拓撲,當壓測使用的用戶端數量較少或使用基於源地址的一致性雜湊調度演算法時,會提升後端伺服器會話衝突的可能性,從而出現後端伺服器頻繁使用RST報文中斷連線的情況,如下圖所示。
解決方案:建議使用單VIP壓測拓撲。單VIP壓測拓撲圖,請參見壓測拓撲。