问题标签 [iperf]

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 投票
1 回答
168 浏览

c - 设计具有非阻塞管道转发到另一台服务器的代理

我写了一个代理,它也复制流量。我正在尝试将网络流量复制到应接收所有输入并处理所有请求的副本服务器。然而,只有主服务器上的响应对客户端可见。高级工作流程如下

代码可在此要点中找到:https ://gist.github.com/nipunarora/679d49e81086b5a75195ec35ced646de

该测试似乎适用于较小的数据和事务,但在使用 iperf 和较大的数据集时,我似乎遇到了以下错误:

问题出在代码中的特定部分:

阅读过程如下:

请注意,管道已定义如下:

任何人都可以帮助解决错误的原因吗?

0 投票
1 回答
856 浏览

testing - 我需要在客户端和服务器中使用相同版本的 iperf3 吗?

我正在使用 iperf3、WiFi、电力线和以太网测试我们的设备 TCP 性能。我是否需要在客户端和服务器中使用相同的版本,这样我就不会看到奇怪的问题或性能下降?

当前我正在使用服务器:iperf 3.1.3 客户端:iperf 3.0.11

谢谢

0 投票
1 回答
911 浏览

python - 如何在 python 脚本中同时使用 iperf 和 grep?

我尝试了许多描述的方法,但它不适用于我。谁能解释我如何使用子进程在单个 python 脚本中使用它?

iperf -c 10.0.0.1 -i 1 -t 100 | grep -Po '[0-9.]*(?= Mbits/sec)'

0 投票
2 回答
691 浏览

python - python popen标准输出冻结

我已经阅读了许多涉及实时标准输出打印的问题,包括来自JF Sebastian 的 Python 3 解决方案 以读取标准输出的答案。

然而,虽然他的解决方案适用于这种情况:

对于我实际想要使用的应用程序,它不像我期望的那样工作:

对于 ping 场景,每一行都像我手动运行一样打印。使用 iperf 它会在两行输出后停止,并在应用程序完成时刷新所有内容。如果我在脚本中一个接一个地执行它们,我会得到以下输出:

完成 IPERF 后显示此行之后的所有内容

从间隔列中可以看出,如果我手动运行相同的命令,每秒大约打印一行。我是 python 新手,所以任何错误都是可能的。我尝试了其他几种缓存标准输出的方法,但它们也会像这样冻结输出。这可以以某种方式解决吗?

安德烈亚斯

编辑:我认为问题是 iperf 没有刷新,但是由于它显然每秒都在写一个新行,所以必须有一种方法可以在刷新之前捕获它。当运行更长的测试时,我注意到标准输出缓冲区最终被最大化,并且会刷新许多行并继续直到它再次满。

0 投票
3 回答
11039 浏览

linux - 在后台运行 iperf 并将输出重定向到文件

我正在尝试在后台启动 iperf 服务器并将输出重定向到文件。但它不起作用。

服务器:

客户:

我可以在客户端的 send.txt 中看到输出,但在服务器上,我看不到任何文件中写入的任何内容。有人可以帮我这个命令吗?

0 投票
1 回答
1211 浏览

iperf - linux上iperf工具安装报错

安装 linux 中的 iperf 工具时出错,找不到正确的包 libiperf.so.0(64bit)

尝试使用来自 https://www.rpmfind.net/linux/rpm2html/search.php?query=libiperf.so.0()(64bit)的 lib 文件 但不成功

请求你分享正确的包

0 投票
1 回答
13632 浏览

iperf - iperf 和 iperf3 显示不同的网络带宽

我试图了解 iperf (version=2.0.8b) 和 iperf3 (version=3.15) 之间的区别,它们显示两个 VM 之间的网络带宽不同且参数相同。

当我在服务器上运行“iperf -s”并在客户端上运行“iperf -c -t 30 -P 8”时,我得到的带宽等于 45 Gb/s。但是,当我在服务器上运行“iperf3 -s”和“iperf3 -c -t 30 -P8”时,我得到 25 Gb/s 作为网络带宽。因此,存在 15Gb/s 的差异。

知道造成这种巨大差异的原因是什么吗?iperf 和 iperf3 之间的主要区别是什么?

非常感谢

NKD

0 投票
2 回答
1100 浏览

c - 与 iperf UDP 性能相比,UDP 吞吐量较低

通过 iperf2 工具测量 Windows PC 和基于 Zynq 的设备之间的 UDP 吞吐量时,我在专用 1Gb 以太网链路上获得了大约 950 Mb/s。但是,当在 PC 上使用我自己的 UDP 应用程序时,我只能获得大约 50 Mb/s,这比 iperf 测量的吞吐量要低得多。当然,在我的 UDP 应用程序中,我没有任何处理,只有我调用 sendto 函数的 while 循环,UDP 数据包大小为 1470 字节。Zynq 设备上的应用程序由 XAPP1026 提供,所以不是我的。我正在查看 iperf 代码,试图找出它们的不同之处,但基本上,我找不到任何套接字或 udp 选项或它们为最大化 UDP 吞吐量所做的任何类似操作。

这是主要功能的代码(MAXUDP定义为1470):

所以,我的主要问题是如何以与 iperf 相同的方式最大化 UDP 吞吐量?

更新:我切换到 Ubuntu PC。结果不同,但仍然有一些随机的事情发生。我要做的第一件事是为 eth0 ( ifconfig eth0 172.16.0.200 netmask 255.255.255.0) 和网关地址 ( route add default gw 172.16.0.1) 设置 IP 地址。当我使用iperf -c 172.16.0.215 -i 5 -t 25 -u -b 1000m) 运行 iperf 时,我的速度约为 800 Mbits/sec。然而,在以同样的方式运行几次 iperf 之后,突然间我开始只获得大约 15 Mbits/sec 甚至更低的速度。我发现我需要再次设置 IP、网络掩码和网关地址才能获得 800 Mbits/sec。此外,我的 UDP 应用程序的行为方式相同。我正在测量 957 Mbits/sec(使用MAXUDP设置为 1470)在我运行了设置 IP 地址的命令之后。但经过几次迭代后,它会减慢到 11 Mbits/sec 左右。然后我再次设置 IP 地址,并且行为重演。因此,正如 Kariem 在他的回答中所说,问题不在于代码本身,而在于某些操作系统,netif 配置相关的东西。但是,我必须在 Windows 上运行我的 UDP 应用程序,所以我需要弄清楚那里发生了什么。如果你们对 Windows 中可能发生的事情有任何想法,请现在告诉我。

0 投票
1 回答
576 浏览

iperf - 如何在 iperf 上更快地产生流量?

我正在使用创建多个子流的 TCP 实现,并且我正在尝试使用 iperf 对其进行测试,问题是服务器没有填充所有子流,因此我无法正确测试它。我的问题是:如何让 iperf 更快地生成(更多)流量?

0 投票
3 回答
434 浏览

linux - 解析非常规命令输出

iperf在 LEDE OS 上运行了以下版本 2 的输出。我正在尝试解析输出以获取 Mbits/sec 之前的数字,这是 IPERF 会话的平均吞吐量。但是,似乎每列之间的分隔与一定数量的空格或制表符不匹配。另外,生成的CSV格式iperf会产生奇怪的结果,因此我不得不依赖iperf的常规输出。任何建议如何使用正则表达式或 awk 命令解析输出?

iperf命令:

输出: