col*_*ium 12 ethernet throughput
我的家庭网络是纯千兆的,所有设备都支持至少约 9000 字节的巨型帧。将 Synology 上的 MTU 巨型帧设置增加到 6000(字节)可提高性能(810Mbps 写入和 945Mbps 读取)。将该值设置为 7000 只会破坏读取性能(一直下降到 4Mbps);写入性能保持快速。
这是出乎意料的,因为大多数巨型帧问题都没有与它们相关的方向性,并且通常要么全部要么全无(数据包无论来自何处都会在交换机上丢弃)。似乎根本没有发生任何IP 分片,但 TCP 层真的很不高兴。什么可能导致这种不对称/片状行为,我该如何修复它以支持我所有设备应该支持的完整 9000 字节 MTU?
这些是我在试图弄清楚这一点时所做的编辑笔记。
Realtek PCIe GBE 系列控制器 RTL8167
巨型帧:9KB MTU
$ netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
9198 1 32501506 11275394 Local Area Connection
Run Code Online (Sandbox Code Playgroud)
(似乎 9198 不包括 14 字节以太网标头)
$ ping -l 1500 -f 192.168.1.84
Run Code Online (Sandbox Code Playgroud)
(在客户端上运行 Wireshark 时观察到;所有大小都是线字节大小)
[9213, ?] 未由主机发送(需要分段)
[9019, 9212] 已发送但没有响应
[9015, 9018] 分段 IP 响应
[42, 9014] ] 未分片的 IP
[0, 41] ? (无法生成,因为 eth+IP+ICMP 标头 = 14+20+8 = 42 字节)
Asus RT-AC68U -- Firmware 3.0.0.4.378_4585
Enable Jumbo Frame: "Enable"
无法弄清楚它实际支持的巨型帧大小,似乎至少是 9000
它将来自客户端的 ping 请求分段为 1514 字节(但 ping 路由器可能会触发其 WAN 路由器行为而不是其 LAN 交换机行为?)
TP-LINK TL-SG1008D
Jumbo Frames(规格表):9KB(他们的网站说 15KB 但它看起来像一个不同的设备)
Synology DS1815+ -- DSM 5.2-5565 更新 1
巨型帧:9000
从 Synology 到客户端的文件读取数据包
大小:大多数为 9014 字节(双向)
IP 标志:不要对
发现的 Wireshark 进行分片:TCP 虚假重传、TCP 上一段未捕获、TCP 乱序、TCP 快速重传、和正常(9014 字节)数据包
SMB2-over-NetBIOS 协议数据包读取响应读取长度:65,536(~8 个 TCP 段)
$ ifconfig
bond0 Link encap:Ethernet HWaddr --:FF
inet addr:192.168.1.84 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addrs: --/64 Scope:Link, --/64 Scope:Global, --/64 Scope:Global
UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1
RX packets:lots errors:85 dropped:0 overruns:0 frame:85
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:237 GiB TX bytes:117 GiB
eth2 Link encap:Ethernet HWaddr --:00
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:19 dropped:0 overruns:0 frame:19
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:236 GiB TX bytes:83 GiB
eth3 Link encap:Ethernet HWaddr --FF
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:66 dropped:0 overruns:0 frame:66
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1 GiB TX bytes:33 GiB
Run Code Online (Sandbox Code Playgroud)
eth2 和 eth3 使用自适应负载平衡绑定(不支持交换机)
$ ping -c 5 -s 1500 192.168.1.82
Run Code Online (Sandbox Code Playgroud)
(在客户端上运行 Wireshark 时观察到;所有大小都是线字节大小)
[9019, ?] 请求已发送,响应已发送,响应未收到
[9015, 9018] 碎片化的 IP 请求(可能由 Synology 碎片化,busybox ping 没有no-fragment 选项,所以很难说)
[60, 9014] 未分片的 IP
[0, 59] ?(无法生成,因为 busybox ping 放置了至少 18 个字节加上 42 个字节的标头)
根据我的经验,Synology 在每个固件版本中修复了很多问题,而您运行的固件已经有近四年的历史了。我还没有阅读发行说明,但从那时起似乎有很多机会修复巨型帧错误。
使用新的跳线将测试机直接连接到 Synology(在同一子网上分配静态 IP)并重新运行测试。这将消除布线和交换机以及任何其他设备和配置问题。如果问题仍然存在,请使用另一台计算机运行测试。如果它仍然存在,那么肯定是 NAS。
如果在直连测试期间问题消失,请尝试先更换交换机,然后再更换布线。您没有显示连接,因此我假设测试机和 NAS 之间只有 TPLINK。
| 归档时间: |
|
| 查看次数: |
11684 次 |
| 最近记录: |