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

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

  •  
  •   oovveeaarr · 248 天前 · 4887 次点击
    这是一个创建于 248 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近想要在家里组建 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 下这个结果是非常不符合预期的。

    请问大家有什么想法吗?
    36 条回复    2022-04-19 11:42:14 +08:00
    germain
        1
    germain  
       248 天前 via iPhone
    Iperf 用在 windows 下最多只能 P4

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

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

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

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

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

    作为对比,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
       243 天前
    补充一句)
    现在 LZ 的电脑在安装 Intel X710 的驱动后,再次返回使用 Mellanox 的网卡时,出现了无限蓝屏的问题。蓝屏原因显示的是 Mellanox 的驱动程序问题,看起来是 Intel 的驱动把 Mellanox 的驱动搞烂了。卸载 Intel 、Mellanox 驱动,系统还原,覆盖安装均无效。
    cnbatch
        28
    cnbatch  
       243 天前
    既然驱动都被搞烂要重装了,要不索性试试更高级的 Windows 版本——Windows Server 2022 或 2019 。毕竟 10G 网卡在服务器上更为常见。
    oovveeaarr
        29
    oovveeaarr  
    OP
       241 天前
    @cnbatch #28 哈哈本地还是想用 Windows 10 的,不过确实 Server 系统可能会有改善(毕竟 Intel 都有 Server 限定驱动)
    有空了我去测试下看看
    oovveeaarr
        30
    oovveeaarr  
    OP
       241 天前   ❤️ 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  
       241 天前
    @Laitinlok #8 does not support Windows 8/10/2012,1 年多没更了
    Laitinlok
        32
    Laitinlok  
       241 天前
    @raycheung latest stable release that works with Windows XP, 7, 8, 8.1, 10, 2012 Server, etc.
    raycheung
        33
    raycheung  
       241 天前
    @Laitinlok #32 咦,难道看串行了,我再去瞧瞧[手动 dog]
    fan88
        34
    fan88  
       239 天前
    @oovveeaarr 实测卸载火绒后性能一下就得到了巨幅提升,双线程就可以跑满 9G
    LittleSho
        35
    LittleSho  
       239 天前   ❤️ 1
    @oovveeaarr 我装了火绒和 Glasswire ,AQC107 多线程上行能跑满,但是下行只有 5Gbps ,把火绒卸载掉能跑到 7Gbps ,把 Glasswire 卸载掉能跑到 9Gbps ,装了这两个软件后,电脑如果长时间没重启,速度会越来越慢
    smallthing
        36
    smallthing  
       232 天前
    我的没有你这些问题 跑的稳的很
    intel 的 10G 网卡。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4771 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 03:37 · PVG 11:37 · LAX 19:37 · JFK 22:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.