问题标签 [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.
iperf3 - 为什么我的 iperf3 UDP 数据包速率恒定,与数据包长度无关?
我在一台设备上启动 iperf3,在另一台设备 iperf3 --server
上是这样的:
现在,我注意到,无论我为--length
iperf3 的参数指定什么(至少长度小于 1448 字节,见下文),每 100 毫秒间隔内传输的数据报数量基本保持不变,这意味着最终比特率/它报告的吞吐量与--length
参数值成比例增长。在下面的条形图中,您可以看到--length
x 轴上的参数值以及 iperf3 报告的比特率(bits_per_second
在其 JSON 输出中)除以--length
y 轴上的值。
请注意 1448 之后的下降,并且 iperf3 输出warning: UDP block size <length> exceeds TCP MSS 1448, may result in fragmentation / drops
长度大于该长度的消息,因此应该很清楚。
尽管如此,在每个间隔中传输的数据报数量保持不变对我来说没有意义,因为我希望 iperf3 始终充分利用链路的容量。那么,我如何才能获得我在这里拥有的“真实”吞吐量,而与所选的数据报长度无关?
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 速度 - 应该吗?谁能解释这种差异?
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
以下是我采取的步骤:
我使用 apt 安装 dpdk:
sudo apt install openvswitch-switch-dpdk
将替代设置为:
sudo update-alternatives --set OvS-vswitchd /usr/lib/openvswitch-switch -dpdk/OvS-vswitchd-dpdk
分配大页面并更新 grub。
挂载大页面
将 NIC 绑定到 DPDK:
sudo dpdk-devbind --bind=vfio-pci ens33
. 虽然我不需要这一步,因为如果我不绑定我的网卡,我就没有来自外部的流量,但sudo service openvswitch-switch restart
失败了。我创建了一座桥梁:
ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
我为我的容器创建了两个端口:
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)打开端口之间的双向流:
sudo ovs-ofctl del-flows br0
sudo ovs-ofctl add-flow br0 in_port=1,action=output:2
ovs-ofctl add-flow br0 in_port=2,action=output:1
在第 8 步之后,我不知道如何连接我的 iperf3 docker 容器以使用这些端口。感谢您帮助我了解如何将容器连接到端口并测试网络。
编辑 2
根据 Vipin 的回答,考虑到我的要求,这些步骤将不起作用。
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尼克拉斯
udp - 在 gns3 模拟器中使用 Iperf3 测试 udp 吞吐量时出现巨大的数据包丢失
我正在使用 gns3 设备 Iperf3 工具在 gns3 vm 上测试 dmvpn Cisco 网络,但是在测试 udp 数据包吞吐量时,我发现巨大的数据包丢失率达到 80%。我读了很多类似的问题,但似乎 Iperf3 工具中的错误,如何解决这个问题或找到解决方法。
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 结果
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'文件可以运行
我无法解决此错误。请帮我。提前致谢。
omnet++ - Omnet++:如何在 omnetpp 使用 iperf 工具?
我想从主机到服务器发送 10 秒的 UDP 数据包。然后在 10 秒后,我想计算丢弃了多少包。由教授推荐 iperf 工具。他不确定是否可以将 iperf 工具与 omnetpp 一起使用。
我的问题是可以将 iperf 工具与 omnetpp 一起使用吗?如果是,那么我如何在我的拓扑中将其与 omnetpp 一起使用。否则,如果不是,那么我如何在 omnetpp 实现这一点。
iperf3 - 使用 iperf3 进行 SSD 读/写测量
是否可以通过将 SSD 驱动器连接到 PC 并使用 iperf 来测量其读/写速度?
python - 在python中调用iperf3中的客户端函数给出错误
我使用pip安装了iperf3,它安装成功。但是在调用客户端函数时会引发错误。有人可以帮忙吗?