iperf 使用总结
Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。
iperf是client端向server端发送数据
server端显示的是接收速率,最好加i参数,进行速率跟踪
client 显示的是发送速率
server 显示接收速率
-s 以server模式启动,eg:iperf-s
-c 以client模式启动,host是server端地址,eg:iperf -c Server-IP
iperf -c 173.16.0.81 -w 102400000 -t 200 -P 3
说明:从客户端向服务器端173.16.0.81 传输数据,3个进程,时间是200秒,
-w 102400000, 这个我还没搞明白是啥意思。
在一台机器启动服务器端:
[root@gluster01 ~]# ./iperf -s -w 102400000
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 195 MByte (WARNING: requested 97.7 MByte)
------------------------------------------------------------
[ 4] local 173.16.0.81 port 5001 connected with 173.16.0.80 port 39372
[ 5] local 173.16.0.81 port 5001 connected with 173.16.0.80 port 39371
[ 6] local 173.16.0.81 port 5001 connected with 173.16.0.80 port 39374
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-203.3 sec 8.55 GBytes 361 Mbits/sec
[ 5] 0.0-203.4 sec 9.34 GBytes 394 Mbits/sec
[ 6] 0.0-203.5 sec 8.42 GBytes 355 Mbits/sec
[SUM] 0.0-203.5 sec 26.3 GBytes 1.11 Gbits/sec
另外一台机器启动客户端
node2 # ./iperf -c 173.16.0.81 -w 102400000 -t 200 -P 3
------------------------------------------------------------
Client connecting to 173.16.0.81, TCP port 5001
TCP window size: 195 MByte (WARNING: requested 97.7 MByte)
------------------------------------------------------------
[ 5] local 173.16.0.80 port 39374 connected with 173.16.0.81 port 5001
[ 3] local 173.16.0.80 port 39371 connected with 173.16.0.81 port 5001
[ 4] local 173.16.0.80 port 39372 connected with 173.16.0.81 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-200.4 sec 8.42 GBytes 361 Mbits/sec
[ 4] 0.0-200.5 sec 8.55 GBytes 366 Mbits/sec
[ 3] 0.0-200.5 sec 9.34 GBytes 400 Mbits/sec
[SUM] 0.0-200.5 sec 26.3 GBytes 1.13 Gbits/sec
lTCP
n测量网络带宽
n报告MSS/MTU值的大小和观测值
n支持TCP窗口值通过套接字缓冲
n当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
lUDP
n客户端可以创建指定带宽的UDP流
n测量丢包
n测量延迟
n支持多播
n当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
l在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。
l可以指定运行的总时间,甚至可以设置传输的数据总量。
l在报告中,为数据选用最合适的单位。
l服务器支持多重连接,而不是等待一个单线程测试。
l在指定时间间隔重复显示网络带宽,波动和丢包情况。
l服务器端可作为后台程序运行。
l服务器端可作为Windows 服务运行。
l使用典型数据流来测试链接层压缩对于可用带宽的影响。
参数与说明
命令行选项
环境变量选项
描述
客户端与服务器端选项
-f, --format [bkmaBKMA]
$IPERF_FORMAT
格式化带宽数输出。支持的格式有:
'b' = bits/sec 'B' = Bytes/sec
'k' = Kbits/sec 'K' = KBytes/sec
'm' = Mbits/sec 'M' = MBytes/sec
'g' = Gbits/sec 'G' = GBytes/sec
'a' = adaptive bits/sec 'A' = adaptive Bytes/sec
自适应格式是kilo-和mega-二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a。
注意:在计算字节byte时,Kilo = 1024, Mega = 1024^2,Giga = 1024^3。通常,在网络中,Kilo = 1000, Mega = 1000^2, and Giga = 1000^3,所以,Iperf也按此来计算比特(位)。如果这些困扰了你,那么请使用-f b参数,然后亲自计算一下。
-i, --interval #
$IPERF_INTERVAL
设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len #[KM]
$IPERF_LEN
设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。
-m, --print_mss
$IPERF_PRINT_MSS
输出TCP MSS值(通过TCP_MAXSEG支持)。MSS值一般比MTU值小40字节。通常情况