V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
XunzhiJun
V2EX  ›  宽带症候群

一个本地 Wi-Fi 到 PC 10G 网口测速掉速的奇怪问题

  •  
  •   XunzhiJun · 2 天前 · 490 次点击

    测速设备

    设备 A: DIY PC (Proxmox VE 8.3.1 x86_64)

    • eth0: 主板自带一个 2.5G RJ45 网口( RTL8125 2.5GbE )
    • eth1: PCIe 接了一张 10G 网卡( Mellanox ConnectX-4 Lx )

    设备 B: R86S (Proxmox VE 8.3.1 x86_64)

    • eth0 eth1 eth2: 三个 2.5G RJ45 网口( I226-V )
    • eth3: 10G 网卡( Mellanox ConnectX-3 )

    设备 C: DIY PC (Windows 11 24H2)

    • eth0: 一个千兆 RJ45 网口
    • eth1: PCIe 接了一张 10G 网卡( Mellanox ConnectX-4 Lx )

    设备 D: iPhone 16 Pro

    设备 E: Mac mini(M1, 2020)

    • en0: 一个千兆 RJ45 网口
    • en1: Wi-Fi 网卡

    网络设备

    不清楚具体的芯片方案

    交换机 a: 兮克 SKS8300-12E2T2X

    • 10G SFP+
    • 2.5G RJ45

    交换机 b: TP-LINK TL-SE2206

    • 10G SFP+
    • 2.5G RJ45

    Wi-Fi 路由器 c: 小米 BE6500

    • 2.5G RJ45
    • Wi-Fi

    测速

    测速时连接方式

    • A,B,C 的 10G SFP+均通过 10G 光模块、光纤连接 交换机 a 或交换机 b 的 10G SFP+
    • A,B 的 2.5G RJ45 通过网线连接 交换机 a 或交换机 b 的 2.5G RJ45
    • C,E 的 1000M RJ45 通过网线连接 交换机 a 或交换机 b 的 2.5G RJ45
    • 路由器 c 配置为有线中继( AP 模式),2.5G RJ45 连接至 交换机 a 或交换机 b 的 2.5G RJ45
    • D ( iPhone )通过 Wi-Fi 连接 Wi-Fi 路由器 c
    • E ( Mac mini )通过 Wi-Fi 连接 Wi-Fi 路由器 c
    • 网络均为默认配置

    iperf3 测速情况(各选择了一条比较典型的数据)

    1.所有不涉及 Wi-Fi 的有线测速都能跑满
    1. 10G 到 10G
      Transfer     Bitrate         Retr  Cwnd
      1.10 GBytes  9.41 Gbits/sec    0   1.49 MBytes
      
    2. 10G 到 2.5G
      Transfer     Bitrate         Retr  Cwnd
       282 MBytes  2.37 Gbits/sec   67    447 KBytes
      
    3. 10G/2.5G 到 1000M
      Transfer     Bitrate         Retr  Cwnd
       112 MBytes   941 Mbits/sec   89    372 KBytes
      
    2.Wi-Fi 测速掉速
    1. D 到 A/B 的 2.5G 测速不掉速( iPhone 跑满应该就这么多)
      Transfer     Bitrate         Retr  Cwnd
       192 MBytes  1.61 Gbits/sec    0   4.04 MBytes
      
    2. D 到 A/B 的 10G 测速出现掉速
      Transfer     Bitrate         Retr  Cwnd
       106 MBytes   890 Mbits/sec   99    984 KBytes
      
    3. E 到 A/B 的 2.5G 测速不掉速( Mac mini 跑满应该就这么多)
      Transfer     Bitrate         Retr  Cwnd
       104 MBytes   870 Mbits/sec    0   2.61 MBytes
      
    4. E 到 A/B 的 10G 测速出现掉速
      Transfer     Bitrate         Retr  Cwnd
      79.1 MBytes   664 Mbits/sec   79    734 KBytes
      
    7 条回复    2024-12-11 19:57:50 +08:00
    onion83
        1
    onion83  
       1 天前   ❤️ 1
    这个问题也困扰我两年了,今年终于折腾明白了,典型的现象就是:上下行不对等,速度丟半,甚至更多。遗憾的是 B/Y 站搞路由器评测的,基本都是无视或者忽略这个问题。

    解决思路就是启用:网管交换机端口流控 (Flow Control),可以明显观察到 802.3x Pause Frames Transmitted 的计数变化,如果是傻瓜交换机就得听天由命了。
    tootfsg
        2
    tootfsg  
       1 天前 via Android
    题外话,好奇 r86s 的 10g 网卡怎么接上去的?
    XunzhiJun
        3
    XunzhiJun  
    OP
       1 天前
    @onion83 所以应该是 PC 侧的最大带宽高于 Wi-Fi 侧时,PC 那边默认的 tcp 拥塞控制算法会以为线路非常拥堵(其实只是 Wi-Fi 延迟高),最后降速。而限速之后反而能在 4MByte 的窗口大小稳定跑满 Wi-Fi 带宽。不过我那个交换机的流控可能不是用的 802.3x ,配了没用。在 PC 上给万兆卡配个 802.3x 限速或者把拥塞算法改成 bbr 是有用的。
    XunzhiJun
        4
    XunzhiJun  
    OP
       1 天前
    @tootfsg 好像是 PCH 控制的 PCIe3.0x4 。不带 10G 卡的版本,整个 PCIe3.0x4 给到 m2 ,带 10G 的版本是把这个 PCIe 再拆给 m2 和 10G 网卡,m2 好像只有 PCIe3.0x1 。
    onion83
        5
    onion83  
       1 天前
    @XunzhiJun 你可以试试用 iperf3 -R 单边接收打流,看看问题是出现在发送侧还是接收侧这边。
    onion83
        6
    onion83  
       1 天前
    @tootfsg r86s 本来就是有万兆网络接口版本,当然网卡比较差,是咸鱼十几块的 cx3
    busang
        7
    busang  
       14 小时 46 分钟前
    假设 C 开个虚拟交换机。跑这个虚拟网卡会掉速吗? 我类似环境测试这个是正常的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:44 · PVG 10:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.