问题标签 [iperf3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
226 浏览

iperf3 - 为什么我的 iperf3 UDP 数据包速率恒定,与数据包长度无关?

我在一台设备上启动 iperf3,在另一台设备 iperf3 --server上是这样的:

现在,我注意到,无论我为--lengthiperf3 的参数指定什么(至少长度小于 1448 字节,见下文),每 100 毫秒间隔内传输的数据报数量基本保持不变,这意味着最终比特率/它报告的吞吐量与--length参数值成比例增长。在下面的条形图中,您可以看到--lengthx 轴上的参数值以及 iperf3 报告的比特率(bits_per_second在其 JSON 输出中)除以--lengthy 轴上的值。

说明 iperf3 UDP 吞吐量的条形图

请注意 1448 之后的下降,并且 iperf3 输出warning: UDP block size <length> exceeds TCP MSS 1448, may result in fragmentation / drops长度大于该长度的消息,因此应该很清楚。

尽管如此,在每个间隔中传输的数据报数量保持不变对我来说没有意义,因为我希望 iperf3 始终充分利用链路的容量。那么,我如何才能获得我在这里拥有的“真实”吞吐量,而与所选的数据报长度无关?

0 投票
0 回答
20 浏览

lan - iperf3 - 服务器和客户端交换时的不同 LAN 速度

我在运行 Windows/10 的 DELL XPS 8700 上安装了 iperf3,在运行 Kubuntu 18.04.5 LTS 的 ACER Aspire M3920 上安装了 iperf3。我正在尝试确定 LAN 的速度,因此我首先在 DELL(作为服务器)上运行 iperf3 -s 并在 ACER(作为客户端)上运行 iperf3 -c,并在两个方向上获得 936 Mbits/sec。然后我交换了服务器和客户端,结果只有 399 Mbits/sec。DELL 的 CPU 功能稍强一些,但这不会影响 LAN 速度 - 应该吗?谁能解释这种差异?

0 投票
1 回答
705 浏览

docker - 如何将两个docker容器连接到openvswitch+DPDK

我正在尝试使用连接到OVS(openvswitch)和ubuntu 18.04(VMWare工作站)上的DPDK的Iperf3(任何吞吐量测试器应用程序)来测试两个docker容器之间的吞吐量。这样做的目的是比较 OVS-DPDK 与 Linux 内核在某些场景下的性能。

我找不到合适的解决方案,它解释了如何将 OVS+DPDK 连接到 docker 容器,以便容器可以相互传递 TCP/UDP 流量。

感谢您帮助解释如何使用 OVS+DPDK 连接两个 docker 容器。需要在 docker 容器中完成的配置,以及需要在主机操作系统中完成的配置。

顺便说一句,我没有来自外面的交通。

谢谢

编辑

  • DPDK 版本为 20.11.0
  • OVS 版本为 2.15.90
  • Iperf3

以下是我采取的步骤:

  1. 我使用 apt 安装 dpdk:sudo apt install openvswitch-switch-dpdk

  2. 将替代设置为:sudo update-alternatives --set OvS-vswitchd /usr/lib/openvswitch-switch -dpdk/OvS-vswitchd-dpdk

  3. 分配大页面并更新 grub。

  4. 挂载大页面

  5. 将 NIC 绑定到 DPDK: sudo dpdk-devbind --bind=vfio-pci ens33. 虽然我不需要这一步,因为如果我不绑定我的网卡,我就没有来自外部的流量,但sudo service openvswitch-switch restart失败了。

  6. 我创建了一座桥梁:ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

  7. 我为我的容器创建了两个端口:ovs-vsctl add-port br0 client -- set Interface client type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>ovs-vsctl add-port br0 server -- set Interface server type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>. (服务器端口号:1,客户端端口号:2)

  8. 打开端口之间的双向流:

    1. sudo ovs-ofctl del-flows br0
    2. sudo ovs-ofctl add-flow br0 in_port=1,action=output:2
    3. ovs-ofctl add-flow br0 in_port=2,action=output:1

在第 8 步之后,我不知道如何连接我的 iperf3 docker 容器以使用这些端口。感谢您帮助我了解如何将容器连接到端口并测试网络。

编辑 2

根据 Vipin 的回答,考虑到我的要求,这些步骤将不起作用。

0 投票
1 回答
113 浏览

udp - 来自发送方的 iperf3 udp 静默间隙

我使用 iperf3.7 来测量最大 4 Gbps 左右的系统的吞吐量。

iperf3 服务器在 Linux 机器上运行。我使用以下标志在客户端使用此命令启动流量,-R 选项让服务器发送到客户端: iperf3 -c 32.0.161.84 -u -l 1360 -b 550M -P 8 -w 16M -R -t 3000

大多数时候一切都按预期工作,我收到大约 4 Gbps。但在某些情况下,比如 10 次迭代的 1-2 次,我收到的吞吐量低于预期。低多少似乎是随机的,可能是 2 Gbps 或 3 或 3.5。当我遇到低吞吐量场景时,它通常会保持低电平几分钟。有时,几分钟后它可以自行恢复到最大速度,有时它会保持较低的时间更长。当我得到这个低吞吐量场景时,如果停止流量并重新启动,我可以获得一个很好的吞吐量场景,在这种情况下,客户端已经收到一个新的 IP 地址,因为它在每次迭代时动态分配给客户端。

查看发送服务器端的打印输出,它说它正在发送 8x550M,我还检查了 ifstat,它也显示它发送 4400 Mbps。

仍然接收方接收较低的速度。

将运行 iperf 客户端(发送方)的机器的以太网卡镜像到 Wireshark 中显示,不时有 10.8 毫秒的静默间隙,这可以解释接收到的较低速率。

线鲨捕获

在这个使用 wireshark 的例子中,流量是 4.4 Gbps,然后突然之间,似乎是 10.8 毫秒的静默间隙,我们丢失了 4486 个 1360 字节的 ip 帧。这可以解释为什么流量会在一段时间内下降到 3 Gbps。

有谁知道为什么会发生这种情况以及它是否是可能在更高版本 3.8 或 3.9 中修复的已知问题?任何其他标志都可能有助于避免这种情况?我试图在另一台 Linux 机器上运行服务器,但出现了同样的问题,所以我认为这不是机器本身的问题。

BR尼克拉斯

0 投票
0 回答
71 浏览

udp - 在 gns3 模拟器中使用 Iperf3 测试 udp 吞吐量时出现巨大的数据包丢失

我正在使用 gns3 设备 Iperf3 工具在 gns3 vm 上测试 dmvpn Cisco 网络,但是在测试 udp 数据包吞吐量时,我发现巨大的数据包丢失率达到 80%。我读了很多类似的问题,但似乎 Iperf3 工具中的错误,如何解决这个问题或找到解决方法。

0 投票
0 回答
24 浏览

linux - 如何调优网络吞吐量突然下降

我有四个虚拟机,其中两个连接在一起。VM1 和 VM2 已连接,VM3 和 VM4 已连接。
我使用 iperf3 来测试吞吐量。
VM1 和 VM2 统计数据正常,但 VM3 和 VM4 统计数据会突然出现吞吐量下降。如何找到根本原因并调整网络吞吐量?
下面是 VM1 TX 和 VM3 TX 上的 iperf3 吞吐量统计。
我的问题是为什么 VM3(471Mbps->198Mbps)会出现抖动或吞吐量突然下降,但是在 VM1 上,吞吐量是稳定的。
请注意,四个虚拟机之间的所有配置都是相同的。它应该有相同的结果。

VM1 和 VM2:
VM1 上的命令:

VM2 上的命令:

VM1 TX 上的 iperf 结果:

VM3 和 VM4:
VM3 上的命令:

VM4 上的命令:

VM3 TX 上的 iperf3 结果

0 投票
1 回答
105 浏览

android - 为什么 Runtime.getRuntime().exec() 发出异常为 No such file or directory

下载后我已经构建了 iperf。然后,我推送了在 Android 项目中构建的 iperf 可执行文件,如 app/src/main/jniLibs(包括 arm64-v8a、armeabi-v7a、x86 和 x86_64)。我试图将该可执行文件重命名为“libiperf.so”。我在点击事件中写下了以下代码。

但 Android Studio 发出异常,如“无法运行程序”/data/app/com.example.iperf-RP_dMVQlcYeU-n_xznRvhQ==/lib/x86/libiperf.so”:错误=2,没有这样的文件或目录”到我。

有一件奇怪的事情。如果我通过 Android Studio 模拟器的设备文件资源管理器查看 /data/app/package**/lib/x86 文件夹,则该文件夹中没有文件。我真正的三星手机也有同样的问题。更奇怪的是Android Studio构建的apk文件有'libiperf.so'文件可以运行

我无法解决此错误。请帮我。提前致谢。

0 投票
1 回答
50 浏览

omnet++ - Omnet++:如何在 omnetpp 使用 iperf 工具?

我想从主机到服务器发送 10 秒的 UDP 数据包。然后在 10 秒后,我想计算丢弃了多少包。由教授推荐 iperf 工具。他不确定是否可以将 iperf 工具与 omnetpp 一起使用。

我的问题是可以将 iperf 工具与 omnetpp 一起使用吗?如果是,那么我如何在我的拓扑中将其与 omnetpp 一起使用。否则,如果不是,那么我如何在 omnetpp 实现这一点。

0 投票
0 回答
21 浏览

iperf3 - 使用 iperf3 进行 SSD 读/写测量

是否可以通过将 SSD 驱动器连接到 PC 并使用 iperf 来测量其读/写速度?

0 投票
0 回答
17 浏览

python - 在python中调用iperf3中的客户端函数给出错误

我使用pip安装了iperf3,它安装成功。但是在调用客户端函数时会引发错误。有人可以帮忙吗?