我们有一个dataload作业,它可以在两个sql服务器之间通过网络传输相对大量的数据.服务器位于同一子网上,它们之间只有一个切换.数据由几个大的varchar字段和一个xml字段组成.
为了增加吞吐量.我尝试将网络数据包大小从连接字符串的默认值4096更改为32627;然而,它似乎没有帮助表现.我怀疑问题是虽然我们是一个正在运行的演出以太网,但是“jumbo frames”没有启用.
为了证实这一点,我尝试了两次ping测试:
ping -l 1400 -f pdbsql01dul
作品
ping -l 4096 -f pdbsql01dul
数据包需要分段,但DF设置.
正如您所看到的,最大的数据包大小似乎在1400左右
我的问题是,如果Jumbo帧是~8096,那么设置网络数据包大小是否有任何好处呢?
如果连接是相关服务器的本地连接,这会改变吗?
解决方法
需要做的是,以太网网络上的MTU设置需要从1500增加到4096以北.这些设置通常在驱动程序设置页面上设置.为了获得良好的网络,您确实希望同一个以太网上的所有设备(包括所有以太网交换机)具有相同的MTU设置.
Jumbo Frame setting on one of my servers http://sysadmin1138.net/images/jumbo-setting.png
这就是你在我的一台服务器上更改它的地方.
它有帮助吗?当然可以.较少的数据包碎片意味着TCP堆栈上的工作量较少,无法重新组合流量流.它可能不是数量级的,但它可能会有所帮助.
我认为,服务器本地连接使用管道而不是TCP连接,并且可能不受此更改的影响.