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

Windows 10 的 10G 网络性能非常糟糕,有什么办法优化吗?

  •  
  •   oovveeaarr · 2022-04-03 21:42:18 +08:00 · 8159 次点击
    这是一个创建于 994 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近想要在家里组建 10G 网络环境,结果发现 Windows 跑 10G 有很严重的性能问题。

    测试使用 iperf 进行多线程、单线程测试

    Windows 10 测试结果
    单线程:接收 2-2.5Gbps 发送 4-5Gbps
    5 线程(尝试使用网卡自带的优化工具优化后):接收 2-5Gbps 发送 5-6 Gbps
    5 线程(未使用网卡自带优化):接收 2-2.5Gbps 发送 4-6 Gbps

    Ubuntu 20.04 测试结果
    单线程:接收 8.5-9.5Gbps 发送 8.5-9Gbps
    多线程:接收 8.5-9.5Gbps 发送 8.5-9Gbps
    双向单 /多线程:U/D 9.0Gbps/8.5Gbps

    Ubuntu 的测试结果非常正常,反之 Windows 的测试结果却非常差;目前已经尝试过:
    1.使用网卡自带优化程序优化
    2.开启所有 offload
    3.尝试使用 smb 等测试方式

    结论基本都接近上述测试结果,且在测试过程中,Windows 中部分 CPU 会被完全吃满(超线程不吃),感觉像是驱动 /CPU 性能问题。但是尝试过将 CPU 超频等操作,似乎没有很明显的改善。
    但是根据卖家、第三方、还有热心网友发的评测看来,Windows 下这个结果是非常不符合预期的。

    请问大家有什么想法吗?
    38 条回复    2024-03-10 23:24:27 +08:00
    germain
        1
    germain  
       2022-04-03 21:55:03 +08:00 via iPhone
    Iperf 用在 windows 下最多只能 P4

    Windows 下换 nttftp 测
    germain
        2
    germain  
       2022-04-03 21:56:00 +08:00 via iPhone
    *ntttcp
    jtshs256
        3
    jtshs256  
       2022-04-03 22:00:43 +08:00 via iPhone
    所以最关键的网卡型号没说?
    oovveeaarr
        4
    oovveeaarr  
    OP
       2022-04-03 22:02:18 +08:00
    @germain #1 iperf3 似乎没有这个问题,我去试试 NTTTCP
    oovveeaarr
        5
    oovveeaarr  
    OP
       2022-04-03 22:02:56 +08:00
    @jtshs256 #3 忘了说了,Mellanox ConnectX-3 洋垃圾( cx341 )
    wudaye
        6
    wudaye  
       2022-04-04 01:51:43 +08:00
    起这个标题负责任吗?
    cnbatch
        7
    cnbatch  
       2022-04-04 02:36:31 +08:00
    我用的是 Marvell AQtion 10G 网卡( RF45 + 6 类线),在 Windows 10 可以跑出 9G+,-P 5 情况下可达 9.9G 。

    根据 chiphell 网站讨论贴《万兆光纤内网不达标》的说法,同一张网卡在 Windows 达不到 10G 的原因就一个:CPU 单核弱。而且这个讨论贴的作者后来用-P 10 跑出了 10G 的速度。

    顺便给个参考:chiphell 讨论贴的作者电脑 CPU 是双路 E5-2630 ,我电脑的 CPU 是 i9-9900K 。
    Laitinlok
        8
    Laitinlok  
       2022-04-04 02:48:34 +08:00 via Android   ❤️ 1
    更新網卡驅動, 然後再用 tcp optimiser ( https://www.speedguide.net/downloads.php)
    fastcache
        9
    fastcache  
       2022-04-04 11:14:59 +08:00
    AQC107 在 win 下面用有 bug ,无解, 换成 intel 就没问题
    oovveeaarr
        10
    oovveeaarr  
    OP
       2022-04-04 13:39:09 +08:00
    @cnbatch #7 看了一下帖子,和我的情况还是有一点不一样。
    我这个测试结果是单线程和多线程速率差不多的情况下,接收性能( iperf 的-R 参数)特别差。
    帖子中好像都是测的发送性能,这个虽然也有问题,不过问题都不大。
    看 CPU 使用率,总感觉像是驱动有问题,导致 offload 失效,尤其是 receive offload 。
    我的 CPU 是 i7 3770K ,看 cpubenchmark 单线程比帖中的 LZ 好很多的,超频后应该有进一步加强。
    你测试的时候是用的- R 参数吗?
    oovveeaarr
        11
    oovveeaarr  
    OP
       2022-04-04 13:39:35 +08:00
    @Laitinlok #8 驱动已经更新到最新的,那个软件好像和网卡自带的优化差不多,不过我晚点也试试看。
    oovveeaarr
        12
    oovveeaarr  
    OP
       2022-04-04 13:40:44 +08:00
    @fastcache #9 诶,Intel 的卡在 Linux 下走虚拟化问题还蛮多的,所以一开始就想着避开 Intel ,结果 Mellanox 竟然在 Windows 上翻车了。。。
    没想到 Windows 还是用 Intel 靠谱些。。
    cnbatch
        13
    cnbatch  
       2022-04-04 14:13:06 +08:00
    @oovveeaarr telegra.ph/Windows---Marvell-AQtion---iperf3---v2ex-04-04
    双向各测了两次,都没问题
    (我注册未满 30 天,只好这样发图片了)
    cnbatch
        14
    cnbatch  
       2022-04-04 14:20:29 +08:00
    @fastcache 我买的网卡(散热板印有 MSI logo 的那款)据称里面用的也是 AQC-107 芯片,但用起来就能跑满。想不到同芯片不同品牌的差别会这么巨大。
    cnbatch
        15
    cnbatch  
       2022-04-04 14:33:10 +08:00
    忘了说,我在网卡属性里面改了这些设置:
    开启 Jumbo Packet ,设置成最大( 9014 )
    Receive Buffers 设置到最大( 4096 )
    Transmit Buffers 设置成最大( 8184 )
    fastcache
        16
    fastcache  
       2022-04-04 22:31:45 +08:00 via iPhone
    @cnbatch 两端都是 AQC 还行,异厂家容易崩
    cnbatch
        17
    cnbatch  
       2022-04-04 23:30:09 +08:00
    @fastcache Windows 的这边是 AQC ,另一端是板载 Intel + XigmaNAS 12 ,中间隔了个 QNAP 交换机
    这里一路下来分别有 3 家硬件厂,都能达到 10G ,所以我觉得 OP 遇到的问题应该是驱动有 bug 了
    fan88
        18
    fan88  
       2022-04-05 17:23:25 +08:00
    @oovveeaarr 和楼主同款网卡:Mellanox ConnectX-3,iperf3 下行 2.32G ,上行 4.5G ,也不知道是为什么
    oovveeaarr
        19
    oovveeaarr  
    OP
       2022-04-06 16:19:16 +08:00
    @fan88 #18 我也是这款洋垃圾,这么看来可能是 Mellanox 的驱动问题了?不过我看淘宝卖家的测试,好像都挺正常的,很奇怪。他们的 CPU 主频还没有我的高

    @cnbatch #13 这么奇怪,我晚点换一块网卡试试。

    @cnbatch #15 感谢补充。我好像没有开巨帧,局域网里还有很多设备是千兆的,如果在局域网中开启这个,和这些设备交互的时候,会出问题吗?是只用两端 10G 端口的机器改成 9000MTU 就可以了,还是路由器的 LAN MTU 也要改 9000 呢?
    cnbatch
        20
    cnbatch  
       2022-04-07 00:25:05 +08:00
    无论是 10G 的机器,还是千兆的机器,包括路由器,能开的都开,一般不会有什么问题,目前绝大多数网卡都支持巨型帧,就算没开启支持,它也能收得进去。
    WiFi 明确不支持巨型帧,但也不怕,无线路由器会帮忙拆分、整合的。
    fan88
        21
    fan88  
       2022-04-07 05:33:33 +08:00
    @oovveeaarr 我重启一下就变成 4G 下行,8G 上行了,感觉和电脑负载也有关系?我是 AMD 的板子
    fan88
        22
    fan88  
       2022-04-07 05:37:42 +08:00
    目前又测了下,单线程下行 3G ,上行 6G 。上行双线程就可以跑满大概 9.42G 。下行 3 线程最大 7.2G (但不稳定,有时候只有 5G )
    oovveeaarr
        23
    oovveeaarr  
    OP
       2022-04-08 16:48:20 +08:00
    @cnbatch #20 谢谢大佬提供的信息,我晚点试试开到 9000MTU 试试。

    @fan88 #21 是的,他会吃满不含超线程的 CPU ,如果 CPU 负载高,吞吐率就下去了。所以会有一定的波动
    oovveeaarr
        24
    oovveeaarr  
    OP
       2022-04-08 16:50:04 +08:00
    更新一下更换网卡后的测试,这次使用了 Intel 的 X710 作为测试网卡

    Windows 10 测试结果
    单线程:接收 0.6-1.5Gbps(多数情况 1Gbps) 发送 3-5Gbps
    5 线程:接收 0.6-1.5Gbps(多数情况 1Gbps) 发送 4-5Gbps
    oovveeaarr
        25
    oovveeaarr  
    OP
       2022-04-08 16:51:07 +08:00
    作为对比,Intel 的 X710 测试结果远远差过 Mellanox 的结果,看来 Intel 的驱动还是不太行,Windows 的网路性能看样子也不太行的样子。
    oovveeaarr
        26
    oovveeaarr  
    OP
       2022-04-08 17:03:40 +08:00
    不小心发出去了

    作为对比,Intel 的 X710 测试结果远远差过 Mellanox 的结果,看来 Intel 的驱动还是不太行,Windows 的网路性能看样子也不太行的样子。

    具体到实际情况中:
    Intel 的驱动在 Recv 测试中,会固定吃满 CPU0 的非超线程核心,看起来不支持多线程,导致系统中断延迟;具体表现为系统整体卡顿,鼠标键盘失去响应,显卡停止渲染。其测试结果和 CPU0 的负载呈反比,基本上在 600Mbps-1Gbps 之间摆动。
    仔细调整、寻找 Intel 网卡驱动配置后,结果没有任何改善。

    而 Mellanox 驱动可调整的项目则比 Intel 多很多,具体而言默认情况下,在 Recv 测试中会吃满包含 CPU0 (会有一定余量)在内的其余核心非超线程部分(无余量)。测试时,鼠标、键盘、显卡渲染正常,但是系统响应会有所延迟。通过配置调整后可以避开 CPU0 ,从而改善对系统的影响。
    通过网卡自带的优化程序优化后,测试结果大概是 2-5Gbps ( Mellanox 的驱动偶尔似乎也不会吃满所有核心);我个人是 4 核心的 CPU ,那么按照 Intel 的测试结果来比较,最终的测试结果却是也是单核心性能的 4 倍左右,从这点来说是符合预期的。

    从上述测试,得出如下结论
    1.Windows 的网路性能不知为什么性能非常差,对 CPU 要求非常高,这点暂时不清楚是个例还是都是这样。默认情况下很难跑满 10Gb 的接收性能,需要开启巨帧(改善幅度未测试)
    2.Intel 在 Windows 下的驱动仅支持 RSS 单线程,但是驱动中支持多队列(默认 16 ),为什么不能使用到多线程原因不明。
    3.Intel 驱动默认吃满 CPU0 ,对系统的影响非常大,会导致系统直接假死,且无法调整。
    4.Mellanox 的驱动在这种情况下,设置选项比 Intel 的多;包括支持 RSS 多线程,不会吃满 CPU0 导致系统卡死。
    5.驱动的完善程度会严重影响 Windows 使用 10Gb 网卡的体验,不完善的驱动影响性能的同时,会影响系统的响应。
    oovveeaarr
        27
    oovveeaarr  
    OP
       2022-04-08 17:06:22 +08:00
    补充一句)
    现在 LZ 的电脑在安装 Intel X710 的驱动后,再次返回使用 Mellanox 的网卡时,出现了无限蓝屏的问题。蓝屏原因显示的是 Mellanox 的驱动程序问题,看起来是 Intel 的驱动把 Mellanox 的驱动搞烂了。卸载 Intel 、Mellanox 驱动,系统还原,覆盖安装均无效。
    cnbatch
        28
    cnbatch  
       2022-04-09 01:29:25 +08:00
    既然驱动都被搞烂要重装了,要不索性试试更高级的 Windows 版本——Windows Server 2022 或 2019 。毕竟 10G 网卡在服务器上更为常见。
    oovveeaarr
        29
    oovveeaarr  
    OP
       2022-04-10 15:42:53 +08:00
    @cnbatch #28 哈哈本地还是想用 Windows 10 的,不过确实 Server 系统可能会有改善(毕竟 Intel 都有 Server 限定驱动)
    有空了我去测试下看看
    oovveeaarr
        30
    oovveeaarr  
    OP
       2022-04-10 16:20:57 +08:00   ❤️ 3
    @cnbatch #15
    @fan88 #18
    破案了,经过群内菊巨提醒可能是安全软件影响,测试后发现原因在于**火绒**,本来 Windows 10 的网路效率就不高,装上去之后更是直线下跌到不可接受;而且单纯的关闭安全软件并不起作用,一定要**卸载并重启**,猜测是用驱动注册网路相关钩子导致的,而退出程序后并未卸载驱动,所以性能并未改善。

    和大家同步下测试结果,这次重装了系统,发现了以下额外的几点情况
    我的 CPU 是 Intel 3770k overlocked 4.2Ghz
    1.Windows 10 默认发送性能,大约是 60%-80%的 CPU 就可以达到 10Gbps ;所以不受驱动单线程性能制约
    2.但是接收性能,如果想要跑满 10Gbps ,则需要 170%-200%的 CPU ,如果驱动是单线程的情况下,性能也会削减对应比例。
    3.对于 Mellanox 驱动来说,Windows 自带的驱动似乎比 Mellanox 效率和稳定性高,具体表现在 Mellanox 不管在优化后,还是默认的配置,速率都不如 Windows 自带的驱动稳定;且使用多线程的概率也比较迷
    4.Mellanox 的驱动,是存在着一会用多线程,一会不用多线程的情况,具体原因不明; Intel 的驱动就不敢装了,不想再重装系统了,以后有空再测)))
    5.Mellanox 驱动,大约最多只会吃 200%-250%的 CPU ,偶尔出 BUG 的情况下(只遇到过一次,同时也是开启火绒后性能接近 10Gbps 的情况)能跑到 400%左右。
    6.开启火绒后,网路性能会急剧下降。发送性能要达到 8-9Gbps 需要 170%-200%的 CPU ,如果单线程的话性能也会受到制约。接受性能受影响最大,170%-200%的性能,基本只能跑到 2-3%Gbps 。
    raycheung
        31
    raycheung  
       2022-04-11 10:42:36 +08:00
    @Laitinlok #8 does not support Windows 8/10/2012,1 年多没更了
    Laitinlok
        32
    Laitinlok  
       2022-04-11 10:50:06 +08:00
    @raycheung latest stable release that works with Windows XP, 7, 8, 8.1, 10, 2012 Server, etc.
    raycheung
        33
    raycheung  
       2022-04-11 10:51:49 +08:00
    @Laitinlok #32 咦,难道看串行了,我再去瞧瞧[手动 dog]
    fan88
        34
    fan88  
       2022-04-12 17:10:16 +08:00
    @oovveeaarr 实测卸载火绒后性能一下就得到了巨幅提升,双线程就可以跑满 9G
    LittleSho
        35
    LittleSho  
       2022-04-12 18:34:38 +08:00   ❤️ 1
    @oovveeaarr 我装了火绒和 Glasswire ,AQC107 多线程上行能跑满,但是下行只有 5Gbps ,把火绒卸载掉能跑到 7Gbps ,把 Glasswire 卸载掉能跑到 9Gbps ,装了这两个软件后,电脑如果长时间没重启,速度会越来越慢
    smallthing
        36
    smallthing  
       2022-04-19 11:42:14 +08:00
    我的没有你这些问题 跑的稳的很
    intel 的 10G 网卡。
    mzliangjianjun
        37
    mzliangjianjun  
       2023-03-06 14:13:42 +08:00 via Android
    @oovveeaarr 基本上安全软件都会遇到的
    afirefish
        38
    afirefish  
       287 天前
    @oovveeaarr 火绒又得一分。Intel x710 网卡。windows 环境,iperf3 ,安装火绒之后,智能跑到 8G 左右,卸载了就能跑满 10G 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   882 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:18 · PVG 06:18 · LAX 14:18 · JFK 17:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.