通过具有不同带宽的路由网络复制 CIFS 文件的速度很慢

通过具有不同带宽的路由网络复制 CIFS 文件的速度很慢

我们通过互联网在站点之间建立了长距离 100 Mbit/s 链路 通过
vpn 进行 Ping:
回复来自:字节=32 时间=38ms TTL=60
回复来自:字节=32 时间=38ms TTL=60

如果服务器(w2k8)和客户端(W7)都具有 1Gb 全双工 LAN 连接,则站点间文件复制的速度接近 1mb/秒

如果我们将一台或另一台主机的 NIC 模式更改为 100Mb 全双工,则文件复制速度将提高到 5mb/秒

不同的驱动程序、硬件、操作系统版本、tcp/NIC/以太网设置(流量控制、卸载、烟囱、ECN、MTU、RSS、tcp 窗口大小自动调整)的问题相同

当然,我们不能接受减慢单侧链接的速度作为解决方法,
我们能否同时进行快速的站点间文件复制和快速的 LAN 连接?

两端均禁用 Jubo

ping -f -l 1200 服务器
来自 192.168.1.2 的回复:字节=1200 时间=39ms TTL=123
数据包:已发送 = 4,已接收 = 4,丢失 = 0(0% 丢失),
大约往返时间(毫秒):
最短 = 38ms,最长 = 39ms,平均 = 38ms

ping -f -l 8000 服务器
数据包需要分段但设置了 DF。
数据包:已发送 = 4,已接收 = 0,丢失 = 4(100% 丢失),

ping -l 8000 服务器
来自 192.168.1.2 的回复:字节=8000 时间=42ms TTL=124
数据包:已发送 = 4,已接收 = 4,丢失 = 0(0% 丢失),
大约往返时间(毫秒):
最短 = 42ms,最长 = 42ms,平均 = 42ms

答案1

据我所知,您怀疑问题是由于 LAN 主机的 NIC 和站点间链路之间的速度不平衡造成的。您还提到了您尝试过的许多不同选项,但都没有帮助。由于您没有提到巨型帧,我建议您尝试在主机的 NIC 驱动程序属性中(或至少在服务器上)禁用它们 - 它们可能会导致路由器出现碎片(并可能丢失碎片)(您也没有提到,这就是为什么我还建议您包含有关拓扑的更多详细信息),请进行更多测试,包括使用-l(大小)和-f(不碎片)选项的不同组合进行 ping,例如:ping -f -l 1200 192.168.1.2ping -f -l 8000 192.168.1.2 (这个可能不起作用)ping -l 8000 192.168.1.2来确定路径的 MTU 并收集更多统计数据。

更新 1:

好的,如果关闭巨型帧没有帮助,请取消选中禁用 TCP/IP 上的 NetBIOSTCP/IP 属性中的复选框(在所有参与主机上执行此操作;现代 Windows 版本无论如何都不应使用此设置,因此这样做不会有害)。如果这也无济于事,您可以尝试另一种在站点之间传输文件的方式,例如,在您的服务器上部署(临时)IIS 并尝试通过 HTTP 和/或 FTP 上传/下载大文件。如果这可行,则问题不在于 TCP/IP 堆栈,而在于 CIFS 协议/实现本身。

答案2

CIFS 性能极大程度上依赖于链路延迟,尤其是在您连接到域控制器时(这源于 CIFS/SMB 传输的方式,因为它通常使用小数据包,尤其是在使用域控制器时)。

我最好的猜测是您的网关路由器没有(或不好)QoS配置,因此 1 Gb 本地链路可以饱和其发送/接收队列,破坏正常的流量并导致 CI​​FS/SMB 延迟激增,进而导致数据传输缓慢。

尝试在两个网关上配置 QoS,为 CIFS/SMB 流量分配 45 Mb/s 左右。如果可行,请根据需要增加带宽上限,并测试每个新步骤。

相关内容