【问题标题】:Netperf reporting zero throughputNetperf 报告零吞吐量
【发布时间】:2014-04-27 00:44:00
【问题描述】:
我已在两个站点中安装了 netperf 2.6 并尝试运行 netperf 基准测试,但我得到的只是零吞吐量...有谁知道如何正确使用 netperf? (我在关注官方文档)
我在服务器上运行它:
./netserver -p xxxxx
输出是:
Starting netserver with host 'IN(6)ADDR_ANY' port 'xxxxx' and family AF_UNSPEC
在另一边我跑:
./netperf -s 5 -H a.b.c.d -p xxxxx
输出是:
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to a.b.c.d () port 0 AF_INET : demo
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.00 0.00
有什么想法吗?
【问题讨论】:
标签:
networking
benchmarking
throughput
【解决方案1】:
netperf 测试有两个“连接”。第一个是“控制连接”,通过它交换有关测试设置和结果的信息。对于基准测试本身,使用“数据连接”。控制连接将使用您通过全局“-p”选项指定的控制端口。默认情况下,数据连接将使用运行网络服务器的网络堆栈选择的端口号。
两者都必须通过防火墙打开才能成功进行测试。
如果仅打开控制端口,您将看到显示测试横幅,因为控制连接已建立。由于无法建立数据连接,因此将报告为零。
您可以使用特定于测试的“-P”选项为数据连接指定一个明确的端口号。因此,如果您打开第二个端口号 9992,您将像以前一样启动 netserver,然后您的 netperf 命令将变为:
./netperf -s 5 -H a.b.c.d -p xxxxx -- -P ,9992
逗号很重要。特定于测试的 -P 选项允许为数据连接指定本地和远程端口号。远程端口号后跟一个逗号。
【解决方案2】:
终端1:
$ sudo netserver -D -4 -L 0.0.0.0 -p 9991
Starting netserver with host '0.0.0.0' port '9991' and family AF_INET
终端2:
$ sudo netperf -H 192.168.2.103 -l 60 -t TCP_STREAM
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.2.103 (192.168.2.103) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 524288 524288 60.02 89.66