sql server 连接字符串上的网络数据包大小以提高吞吐量

Jas*_*ner 5 connection jumboframes sql-server

我们有一个数据加载作业,它在两个 sql 服务器之间的网络上移动相对大量的数据。服务器在同一个子网上,它们之间只有一个交换机。数据由几个大的 varchar 字段和一个 xml 字段组成。

为了提高吞吐量。我尝试将连接字符串上的网络数据包大小从默认的 4096 更改为 32627;然而,它似乎并没有帮助性能。我怀疑问题是尽管我们正在运行演出以太网,但未启用“巨型帧”。

为了确认这一点,我尝试了两个 ping 测试:

ping -l 1400 -f pdbsql01dul

作品

ping -l 4096 -f pdbsql01dul

数据包需要分片但DF设置。

如您所见,最大的数据包大小似乎在 1400 左右

我的问题是,如果 Jumbo 帧是 ~8096,那么将网络数据包大小设置为比这更大有什么好处吗?

如果连接是相关服务器的本地连接,这是否会改变?

sys*_*138 8

需要发生的是以太网网络上的 MTU 设置需要从 1500 增加到 4096 以北。这些设置通常在驱动程序设置页面上设置。对于良好的网络,您确实希望同一以太网上的所有设备(包括所有以太网交换机)具有相同的 MTU 设置。

我的其中一台服务器上的巨型帧设置
(来源:sysadmin1138.net

那就是你在我的一台服务器上更改它的地方。

它可以帮助吗?当然可以。更少的数据包碎片意味着更少的 TCP 堆栈上的工作来重新组装流量流。它可能不是数量级,但它可能有所帮助。

我相信,服务器本地的连接使用管道而不是 TCP 连接,并且可能不受此更改的影响。

  • 您可能还需要在网络交换机上启用巨型帧。 (3认同)