iPerf - iPerf3 and iPerf2 user documentation
GitHub - esnet/iperf: iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
algorithm/iperf-3.9-debug at master · VVvector/algorithm · GitHub
Server or client:
-P, --port: server listen或者connect的 端口。
-i, --interval:report显示的时间周期。默认是1秒。
-B, --bind: 指定bind的网卡地址。
Server specific:
-s, --server:指定server模式。
-D, --daemon: 指定以daemon模式运行。
Client specific:
-b, --bitrate: 指定带宽,0表示不限制。UDP默认是1Mb/s, TCP默认是不限制(0)。
可用斜杠和packet count来指定为burst模式(即一次iperf write发送burst个UDP packet或者TCP block数量。)。/packet_count,最大burst不能超过1000。
--pacing-timer: 设置pacing timer,单位为微妙,默认为1000。
-t, --time:指定测试的时间,默认为10秒。
-n, --bytes: 指定测试传输的数据量,单位是字节。代替-t。(实际传输的总量可能有少许误差。)
-k, --blockcount: 指定测试传输的blocks数量或者packet数量。替代-t或-n。
对于udp就是n个packet,对于tcp来说,指定-b的情况下,就是n个block(block的大小由-l指定)。
在rate为0(没有指定-b)或者burst的情况下,可能实际的发送block量远远小于指定的block量,
因为有可能由于socket write buffer不足,导致没有发送出去的write次数,也被计算到blocks_sent中了。。
-l, --length: 指定读取或写的userspace buffer的大小。
没有指定下:对于tcp默认是128KB; 对于UDP是使用control channel的mss或者默认1460。
最大值: 对于tcp是 1MB, 对于udp是 (64K - 1) - IP and UDP header sizes 。
socket调用: 实际就是tcp或者udp调用write()时 给的data length。)
--cport: bind指定的client端口,对于tcp和udp,默认都是临时随机端口。
-P, --parallel:指定并行测试的client流个数。
-R, --reverse:指定为reverse模式,即server发送数据,client接收数据。
--bidir: 指定为双向模式,即既有由client发送,server接收的数据,也有由server发送,client接收的数据。
-w, --window:指定socket的发送和接收buffer的大小(SO_RCVBUF和SO_SNDBUF)。
-C, --congestion: 指定tcp的拥塞算法,只针对linux和FreeBSD有效。
-M, --set-mss:指定TCP/SCTP的最大段大小,segment size = MTU - 40 bytes。
-N, --no-delay:指定TCP/SCTP为no delay模式,即关闭Nagle算法。
-4, --version4: 只使用IPv4。
-6,--version6:只使用IPv6。
-S, --tos N:指定IP type of service, 0-255, 支持八进制和16进制。
-Z, --zerocopy: 指定使用零拷贝发送数据,这种情况下直接发送文件,可能会有frag list的tx 包形式。
-O, --omit:忽略开始的n秒。
--get-server-output:可获取server端的测试结果。
######## iperf2 #######
# server
iperf -u -s
# client
iperf -u -c 192.168.100.1 -b 100M -t 60
######## iperf3 #######
# server
iperf3 -s
# client
iperf3 -u -c 192.168.100.1 -b 100M -t 60
2. 上行带宽测试:客户端同时向服务器端发起30个连接线程,指定带宽5Mbps,测试60秒。
######## iperf2 #######
# client
iperf -u -c 192.168.100.34 -b 5M -P 30 -t 60
######## iperf3 #######
# client
iperf3 -u -c 192.168.100.34 -b 5M -P 30 -t 60
3.下行带宽测试:测试60秒。
######## iperf2 #######
# client
iperf -u -c 192.168.100.1 -R -t 60
######## iperf3 #######
# client
iperf3 -u -c 192.168.100.1 -R -t 60
4.上下行带宽测试:测试60秒。
######## iperf2 #######
# client
iperf -u -c 192.168.100.1 -d -t 60
######## iperf3 #######
iperf3 -u -c 192.168.100.1 --bidir -t 60
1.上行带宽测试:在tcp模式下,客户端到服务器192.168.100.1,指定带宽为100Mbps,测试60秒。
######## iperf2 #######
# server
iperf -s
# client
iperf -c 192.168.100.1 -b 100M -t 60
######## iperf3 #######
# server
iperf3 -s
# client
iperf3 -c 192.168.100.1 -b 100M -t 60
2.上行带宽测试:客户端同时向服务器端发起30个连接线程,测试60秒。
######## iperf2 #######
# client
iperf -c 192.168.100.1 -P 30 -t 60
######## iperf3 #######
# client
iperf3 -c 192.168.100.1 -P 30 -t 60
3.下行带宽测试:测试60秒。
######## iperf2 #######
# client
iperf -c 192.168.100.1 -R -t 60
######## iperf3 #######
# client
iperf3 -c 192.168.100.1 -R -t 60
4.上下行带宽测试:测试60秒。
######## iperf2 #######
# client
iperf -c 192.168.100.1 -d -t 60
######## iperf3 #######
iperf3 -c 192.168.100.1 --bidir -t 60