SQLSERVER 2012之AlwaysOn -- 同步模式下的網卡性能優化

本文是基於上一篇《SQLServer 2012之AlwaysOn —— 指定數據同步鏈路,消除網絡抖動致使的提交延遲問題》的問題繼續進行優化;具體背景請參照上文;html

    先後折騰了一個多月,最近終於把這塊難啃的骨頭搞定了。問題只是出在網卡的高級功能上;windows

    解決方案:關閉網卡的高級功能Jumbo Mtu和Large Send Offload V2網絡

    問題分析:根據Broadcom Ethernet 網絡適配器的解釋併發

Jumbo Mtu

Jumbo Mtu 屬性容許網絡適配器發送和接收長度大於 1514 字節但小於 9000 字節的超大 Ethernet 幀。此屬性要求具備可以處理 Jumbo 幀的交換機。 dom

默認狀況下,幀大小設置爲 1500 字節。要增長接收幀的大小,可按 500 字節的增量增大字節數量。tcp

Large Send Offload

TCP 分段一般是由協議棧完成。啓用 Large Send Offload 屬性時,TCP 分段可由網絡適配器完成。 性能

Disable: 禁用 Large Send Offload。大數據

Enable (默認值): 啓用 Large Send Offload。優化

    Large Send Offload是網絡適配器的高級功能之一,其目的是在網絡適配器端進行TCP的分段工做,以此來下降CPU以及其餘相關設備的壓力;但隨着多核CPU的普遍應用,網絡適配器的處理能力相較於CPU弱了不少,所以當大量併發請求致使數據頻繁更新或大數據量傳送時,開啓Large Send Offload將嚴重影響性能;url

    在網上搜了一把,此類問題的影響還比較常見

http://www.bitdefender.com/support/Large-Send-Offload-causes-performance-and-slowdown-issues-459.html

http://www.peerwisdom.org/2013/04/03/large-send-offload-and-network-performance/

https://social.technet.microsoft.com/Forums/windowsserver/en-US/bdc40358-45c8-4c4b-883b-a695f382e01a/very-slow-network-performance-with-intel-nic-when-tcp-large-send-offload-is-enabled

    下圖是優化前的性能曲線,圖中表示方法調用TP99指標在100~300ms之間抖動

yestoday

    下圖是優化後的性能曲線,能夠看到優化後的方法調用TP99指標在100~150ms範圍內,且比較平穩;

today

 

     儘管WSFC再也不像Windows Cluster同樣要有心跳線,但爲了不大量的數據同步對應用訪問鏈路形成影響,仍是建議增長直連線(或專用的數據同步網絡),並修改endpoint_url使其生效,具體方法能夠參照《SQLServer 2012之AlwaysOn —— 指定數據同步鏈路,消除網絡抖動致使的提交延遲問題》操做;

相關文章
相關標籤/搜索