【问题标题】:Why iperf bandwidth is highter than dd->netcat为什么iperf带宽高于dd->netcat
【发布时间】:2021-10-10 17:20:52
【问题描述】:

我想在我的嵌入式设备上测量 1Gb 以太网接口的实际速度,该设备带有 ARM cortex-A8 双核 600MHz 处理器,连接到另一侧的 PC。

我尝试使用安装在设备上的 iperf 客户端和安装在 PC 上的 iperf 服务器进行检查。我得到了the following results

比我在以下命令上更改 iperf 客户端:

$ dd if=/media/sd0p1/Videos/20180221_164356.mp4 bs=1M | nc 192.168.0.2 5001

在这种情况下,带宽大约是 iperf 的 2 倍: dd-nc-results.

我还阅读了this post,然后在客户端执行了 2 个 dd->nc 管道实例,将数据发送到 PC 端的 iperf 和got this result。 我还发现,在 dd->nc 的情况下,我的 CPU 几乎已满。 我有两个问题:

  1. 我认为哪种情况是识别真实带宽的更准确方法。
  2. 当我开始在我的设备上启动更多应用程序时,此结果会如何变化?我是对的,如果工作进程数量增加,带宽应该下降。

【问题讨论】:

    标签: networking embedded-linux cpu-usage netcat iperf


    【解决方案1】:

    我在类似的设置(ARM PC)中遇到了同样的现象。我用谷歌搜索,找到了你的问题 - 没有答案。所以我开始进行一些测量,发现在我测试过的小脑 ARM 中,iperf3 在测试期间消耗了 22% 的 CPU - 但在dd ... | nc 版本中,netcat 消耗了 85%:

    因此,在涉及大量数据通过管道传递的场景中,显然会有更多的开销。我的猜测是因为 ARM CPU 上的小型 CPU 缓存,dd 生成的数据从一个进程到另一个进程的交叉足以溢出 CPU 缓存大小 - 对最终数据传输速度有很大影响(在我的情况,50%)。

    所以,第一个问题的答案是,两条测试路径为您提供了不同的信息:

    • iperf3 测试检查您的网络速度。仅此而已。
    • dd ... | nc 测试还检查您的网络速度在 ARM CPU 负载下的表现。在您和我的设置中,它显然受到了影响。

    关于您的第二个问题 - 好吧,如果您启动更多使用 ARM CPU 的应用程序,那么您的最高速度将受到更多影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多