用iperf测量网络吞吐速率

iperf 是一个用来 测量网络吞吐 的工具。它既可以测量 TCP 吞吐,也可以测量 UDP 吞吐。使用 iperf 测量网络吞吐,用户需要一个接收并忽略流量的服务端以及一个生成测试流量的客户端。

下文以 TCP 为例,演示使用 iperf 测量从 BlueServerRedServer 的网络带宽:

服务端

RedServer 服务器上,运行 iperf 命令启动服务端:

1
2
3
4
5
fasion@RedServer:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

注意到, iperf 服务端默认监听 5001 端口, TCP 窗口大小为 85.3 KB 。用户可根据需要调整,详情请查看 Man文档

客户端

BlueServer 服务器上,运行 iperf 命令启动客户端:

1
2
3
4
5
6
fasionBlueServer:~$ iperf -c RedServer
------------------------------------------------------------
Client connecting to RedServer, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3 ] local 192.168.56.2 port 38517 connected with 192.168.1.3 port 5001

客户端连上服务端之后,便开始生产并发送测试流量了。除了使用机器名,还可以直接指定 RedServerIP 地址。

测试报告

测试完成后, iperf 向屏幕输出测试报告:

1
2
3
4
5
6
7
8
fasionBlueServer:~$ iperf -c RedServer
------------------------------------------------------------
Client connecting to RedServer, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3 ] local 192.168.56.2 port 38517 connected with 192.168.1.3 port 5001
[ ID ] Interval       Transfer     Bandwidth
[  3 ]  0.0-11.4 sec  2.38 MBytes  1.75 Mbits/sec

从报告中可以得知,客户端在大约 12 秒的时间内,发送了 2.38 MB 数据,平均带宽是 1.75 Mb/s 。服务端也会输出测试报告,格式是一样的,不再赘述。

参考文献

  1. iperf(1) - Linux manual page

小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注: