V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
slwl123
V2EX  ›  问与答

两台 pc 直连 iperf3 测试 不同系统下结果差距很大

  •  
  •   slwl123 · 2018-10-02 21:06:01 +08:00 · 3143 次点击
    这是一个创建于 2247 天前的主题,其中的信息可能已经有所发展或是发生改变。

    两台 pc 都是 rtl8169 千兆网卡 网线直连 在不同系统下结果不同 有没有技术大神 帮忙分析下 是什么问题

    pc1 i5-2500 4G 内存+256 ssd
    pc2 x5-z8350 2G 内存+ 32G emmc

    Markdown Markdown Markdown Markdown

    第 1 条附言  ·  2018-10-03 22:33:46 +08:00
    系统 WIN10 专业版 1803 debian 9
    12 条回复    2018-10-04 16:45:13 +08:00
    orochix
        1
    orochix  
       2018-10-02 21:44:39 +08:00 via Android
    网卡模式切换为 speed deplex 1.0gbps,不要全双工
    slwl123
        2
    slwl123  
    OP
       2018-10-02 23:06:13 +08:00
    @orochix #1
    就这几种模式
    FullBridgeRect
        3
    FullBridgeRect  
       2018-10-02 23:49:48 +08:00 via Android
    和双工网卡模式没什么关系当时我在 win 上测结果也很迷,反正用的时候能打满
    ryd994
        4
    ryd994  
       2018-10-03 01:42:04 +08:00 via Android
    从你给的这四条数据,说明 Windows UDP RX 有问题
    可能是协议栈开销比较大。Linux 的 UDP 栈确实写的很黑科技。
    考虑检查网卡关于 receive side coalescing 的设置
    加-P 8 再测,如果多连接性能可以,那就没什么大问题。因为实际使用中不会有人单连接 UDP 跑带宽。
    还有加-l 1400 再测。因为 iperf 默认用 8k 包。会有分片,这可能带来性能问题。
    hjc4869
        5
    hjc4869  
       2018-10-03 02:06:30 +08:00
    RTL8169 换成 Intel 网卡再测下。
    slwl123
        6
    slwl123  
    OP
       2018-10-03 10:09:14 +08:00 via Android
    @ryd994 调了没效果 加-P 8 就连不上
    jedihy
        7
    jedihy  
       2018-10-03 18:36:14 +08:00 via iPhone
    @ryd994 Windows 的 RSC 是 TCP only。iperf -R 是 server 在发包。问题更可能在 server,或者说发的那一边。

    楼主应该看看 CPU usage 和 iperf 打印的丢包数据。
    perfmon 里面看看网卡的几个 counter,discard*的是不是 0。1G 的带宽什么优化都不用也是能跑满。

    另外,winver 结果告知一下,我明天可以尝试 repro。
    slwl123
        8
    slwl123  
    OP
       2018-10-03 22:31:56 +08:00
    @jedihy #7 PC2 cpu 不到 50%
    这是 log https://pan.baidu.com/s/1kAG03iFDIm0CLZ72gWol8w

    perfmon 具体是哪几个计数器 能否说明下 谢谢
    jedihy
        9
    jedihy  
       2018-10-04 03:31:26 +08:00


    你的 log 表明一半的包都丢了。你看一下图里面的 counter。
    slwl123
        10
    slwl123  
    OP
       2018-10-04 10:48:52 +08:00
    @jedihy #9 为 pc2 perfmon
    pc2 运行 iperf3 -s
    pc1 运行 iperf3 -c -u -b 1000M -R
    jedihy
        11
    jedihy  
       2018-10-04 15:03:36 +08:00 via iPhone
    这些包应该是丢在 pc1 了。先看 pc1 的 perfmon discarded 和 error 的 counter。在网卡设置里面增大一下接受缓存,看看有没有效果。如果 error counter > 0,关闭 pc2 网卡的 checksum offload。
    slwl123
        12
    slwl123  
    OP
       2018-10-04 16:45:13 +08:00
    @jedihy #11 PC1 discarded 和 error 全是 0 网卡的接收缓存 128 发送缓存 512 全是最大值
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:07 · PVG 08:07 · LAX 16:07 · JFK 19:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.