slwl123
V2EX  ›  问与答

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

  •  
  •   slwl123 · Oct 2, 2018 · 3606 views
    This topic created in 2810 days ago, the information mentioned may be changed or developed.

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

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

    Markdown Markdown Markdown Markdown

    Supplement 1  ·  Oct 3, 2018
    系统 WIN10 专业版 1803 debian 9
    12 replies    2018-10-04 16:45:13 +08:00
    orochix
        1
    orochix  
       Oct 2, 2018 via Android
    网卡模式切换为 speed deplex 1.0gbps,不要全双工
    slwl123
        2
    slwl123  
    OP
       Oct 2, 2018
    @orochix #1
    就这几种模式
    FullBridgeRect
        3
    FullBridgeRect  
       Oct 2, 2018 via Android
    和双工网卡模式没什么关系当时我在 win 上测结果也很迷,反正用的时候能打满
    ryd994
        4
    ryd994  
       Oct 3, 2018 via Android
    从你给的这四条数据,说明 Windows UDP RX 有问题
    可能是协议栈开销比较大。Linux 的 UDP 栈确实写的很黑科技。
    考虑检查网卡关于 receive side coalescing 的设置
    加-P 8 再测,如果多连接性能可以,那就没什么大问题。因为实际使用中不会有人单连接 UDP 跑带宽。
    还有加-l 1400 再测。因为 iperf 默认用 8k 包。会有分片,这可能带来性能问题。
    hjc4869
        5
    hjc4869  
       Oct 3, 2018
    RTL8169 换成 Intel 网卡再测下。
    slwl123
        6
    slwl123  
    OP
       Oct 3, 2018 via Android
    @ryd994 调了没效果 加-P 8 就连不上
    jedihy
        7
    jedihy  
       Oct 3, 2018 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
       Oct 3, 2018
    @jedihy #7 PC2 cpu 不到 50%
    这是 log https://pan.baidu.com/s/1kAG03iFDIm0CLZ72gWol8w

    perfmon 具体是哪几个计数器 能否说明下 谢谢
    jedihy
        9
    jedihy  
       Oct 4, 2018


    你的 log 表明一半的包都丢了。你看一下图里面的 counter。
    slwl123
        10
    slwl123  
    OP
       Oct 4, 2018
    @jedihy #9 为 pc2 perfmon
    pc2 运行 iperf3 -s
    pc1 运行 iperf3 -c -u -b 1000M -R
    jedihy
        11
    jedihy  
       Oct 4, 2018 via iPhone
    这些包应该是丢在 pc1 了。先看 pc1 的 perfmon discarded 和 error 的 counter。在网卡设置里面增大一下接受缓存,看看有没有效果。如果 error counter > 0,关闭 pc2 网卡的 checksum offload。
    slwl123
        12
    slwl123  
    OP
       Oct 4, 2018
    @jedihy #11 PC1 discarded 和 error 全是 0 网卡的接收缓存 128 发送缓存 512 全是最大值
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2836 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 13:50 · PVG 21:50 · LAX 06:50 · JFK 09:50
    ♥ Do have faith in what you're doing.