我正在对一些具有窄信道带宽设置(例如低于 250KHz 带宽)的无线电单元进行吞吐量测试。在对 iperf3 进行测试期间,我注意到,尽管在 iperf3 的命令行上设置了带宽限制,但它传输的最慢速度为 655 KB/秒(即使命令行参数设置如下):
iperf3 -c 10.1.106.82 -u -i 1 -n 10485760 -b 250K
生成的服务器报告将报告传输速度为 655KB/秒,而不是 250KB
当我同时使用 trickle 和 trickled 时也会发生这种情况。
trickled 似乎可以很好地限制同一台机器上 wget 的下载速度。trickle 还可以限制同一台机器上 scp 的上传速度。我需要做些什么才能让 trickle 正确地与 iperf3 配合使用?另外,有人能解释一下为什么 iperf3 似乎无法低于 655KB/秒,即使它自己的命令行开关指示相反?我相当确定我正确使用了 iper3(和 trickle)的命令行开关。只要我的 iperf3 限制高于 655KB/秒,限制就会正确应用。问题是我无法让 iperf3 降低速度,所以我转向了 trickle,但 trickle/trickled 似乎无法与 iperf3 配合使用。
编辑:我也尝试在服务器机器和客户端机器上运行 trickled,并将其设置为 -d 250 和 -u 250。仍然没有什么区别。
答案1
我发现了另一条关于超级用户的评论。显然:
“trickle 通过拦截对 TCP 传输标准库函数的链接调用来工作 - 如果应用程序在编译时静态链接了这些函数,那么它就无法工作。”
我猜测 iperf3 就是这样一个与 trickle 不兼容的程序。