Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失。
Iperf 分为两种版本,unix/linux版和windows版,unix/linux版更新比较快,版本最新。windows版更新慢。windows版的iperf叫jperf,或者xjperf。jperf是在iperf基础上开发了更好的UI和新的功能。
具体参数含义如下:
Client/Server:
-f, --format [bkmaBKMA] 格式化带宽数输出。支持的格式有:
'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
-i, --interval 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。大多时候更改这个值进行测试。
-m, --print_mss 输出TCP MSS值
-p, --port 设置端口,与服务器端的监听端口一致。默认是5001端口,与tcp的一样。
-u, --udp 使用UDP方式而不是TCP方式
-w, --window 设置套接字缓冲区为指定大小。对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。
-B, --bind <host> 绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网卡的主机。在Iperf的UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址。参考-T参数。
-C, --compatibility 与低版本的Iperf使用时,可以使用兼容模式。不需要两端同时使用兼容模式,但是强烈推荐两端同时使用兼容模式。
-M, --mss 设置TCP的MSS(maximum segment size)值 (MSS = MTU - 40 bytes)
-N, --nodelay 设置TCP无延迟选项,禁用Nagle's运算法则。
-V, --IPv6Version 绑定一个IPv6地址。
服务端:$ iperf -s –V
客户端:$ iperf -c <Server IPv6 Address> -V
Server specific:
-s, --server Iperf服务器模式
-D, --daemon Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
Client specific:
-b, --bandwidth UDP模式使用的带宽(default 1 Mbit/sec, implies -u)
-c, --client <host> Iperf的客户端模式,连接到指定的Iperf服务器端。
-d, --dualtest 运行双通道测试模式。这将使服务器端反向连接到客户端(同时进行),使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。
-n, --num 传送的缓冲器字节大小。代替 -t 参数
-r, --tradeoff 双向测试模式。当客户端到服务器端的测试结束时,服务器端通过-L选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。
-t, --time 设置传输的总时间,默认10秒钟
-L, --listenport 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口,-d和-r模式时使用。
-P, --parallel 线程数。指定客户端连接服务端的线程数。
Miscellaneous:
-h, --help print this message and quit
-v, --version print version information and quit
实例:
TCP:
Server:iperf -s -f m -i 10 -P 10 -l 64
Client:iperf -c 10.40.7.45 -i 10 -f m -t 120 -P 10 -l 64
Server:iperf -s -f m -i 10 -P 10 -l 64
Client:iperf -c 10.40.7.45 -i 10 -f m -n 120M -P 10 -l 64
UDP:
iperf -s -u -f m -i 10 -P 10 -l 64
Iperf 分为两种版本,unix/linux版和windows版,unix/linux版更新比较快,版本最新。windows版更新慢。windows版的iperf叫jperf,或者xjperf。jperf是在iperf基础上开发了更好的UI和新的功能。
具体参数含义如下:
Client/Server:
-f, --format [bkmaBKMA] 格式化带宽数输出。支持的格式有:
'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
-i, --interval 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。大多时候更改这个值进行测试。
-m, --print_mss 输出TCP MSS值
-p, --port 设置端口,与服务器端的监听端口一致。默认是5001端口,与tcp的一样。
-u, --udp 使用UDP方式而不是TCP方式
-w, --window 设置套接字缓冲区为指定大小。对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。
-B, --bind <host> 绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网卡的主机。在Iperf的UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址。参考-T参数。
-C, --compatibility 与低版本的Iperf使用时,可以使用兼容模式。不需要两端同时使用兼容模式,但是强烈推荐两端同时使用兼容模式。
-M, --mss 设置TCP的MSS(maximum segment size)值 (MSS = MTU - 40 bytes)
-N, --nodelay 设置TCP无延迟选项,禁用Nagle's运算法则。
-V, --IPv6Version 绑定一个IPv6地址。
服务端:$ iperf -s –V
客户端:$ iperf -c <Server IPv6 Address> -V
Server specific:
-s, --server Iperf服务器模式
-D, --daemon Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
Client specific:
-b, --bandwidth UDP模式使用的带宽(default 1 Mbit/sec, implies -u)
-c, --client <host> Iperf的客户端模式,连接到指定的Iperf服务器端。
-d, --dualtest 运行双通道测试模式。这将使服务器端反向连接到客户端(同时进行),使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。
-n, --num 传送的缓冲器字节大小。代替 -t 参数
-r, --tradeoff 双向测试模式。当客户端到服务器端的测试结束时,服务器端通过-L选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。
-t, --time 设置传输的总时间,默认10秒钟
-L, --listenport 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口,-d和-r模式时使用。
-P, --parallel 线程数。指定客户端连接服务端的线程数。
Miscellaneous:
-h, --help print this message and quit
-v, --version print version information and quit
实例:
TCP:
Server:iperf -s -f m -i 10 -P 10 -l 64
Client:iperf -c 10.40.7.45 -i 10 -f m -t 120 -P 10 -l 64
Server:iperf -s -f m -i 10 -P 10 -l 64
Client:iperf -c 10.40.7.45 -i 10 -f m -n 120M -P 10 -l 64
UDP:
iperf -s -u -f m -i 10 -P 10 -l 64
iperf -c 10.40.7.45 -i 10 -f m -t 120 -P 10 -u -b 1000M -l 64