Sql-Server
sql server 連接字元串上的網路數據包大小以提高吞吐量
我們有一個數據載入作業,它通過網路在兩個 sql 伺服器之間移動相對大量的數據。伺服器在同一個子網上,它們之間只有一個交換機。數據由幾個大的 varchar 欄位和一個 xml 欄位組成。
為了增加吞吐量。我嘗試將連接字元串上的網路數據包大小從預設的 4096 更改為 32627;但是,它似乎對性能沒有幫助。我懷疑問題在於,儘管我們正在執行 gig 乙太網,但未啟用“巨型幀”。
為了確認這一點,我嘗試了兩個 ping 測試:
ping -l 1400 -f pdbsql01dul
作品
ping -l 4096 -f pdbsql01dul
數據包需要分片,但要設置 DF。
如您所見,最大的數據包大小似乎在 1400 左右
我的問題是,如果巨型幀約為 8096,將網路數據包大小設置得比這更大有什麼好處嗎?
如果連接是相關伺服器的本地連接,這會改變嗎?
需要發生的是乙太網網路上的 MTU 設置需要從 1500 增加到 4096 以北。這些設置通常在驅動程序設置頁面上設置。對於良好的網路,您確實希望同一乙太網上的所有設備(包括所有乙太網交換機)都具有相同的 MTU 設置。
(來源:sysadmin1138.net)
那就是您要在我的一台伺服器上更改它的地方。
能幫上忙嗎?它當然可以。更少的數據包碎片意味著更少的 TCP 堆棧重新組裝流量流的工作。它可能不是數量級,但它可能會有所幫助。
我相信伺服器的本地連接使用管道而不是 TCP 連接,並且可能不受此更改的影響。