Sql-Server

sql server 連接字元串上的網路數據包大小以提高吞吐量

  • April 24, 2019

我們有一個數據載入作業,它通過網路在兩個 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 連接,並且可能不受此更改的影響。

引用自:https://serverfault.com/questions/48667