Linux每天一个命令:iperf
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通⽤选项命令⾏选项描述-p, --port n服务器端⼝供服务器监听,客户端连接。
在客户端和服务器端都应该是相同的。
默认是5201
--cport n指定客户端端⼝的选项。
(新iPerf 3.1)
-f, --
format [kmKM]格式化带宽数输出。
⽀持的格式有:'k' = Kbits/sec 'K' = KBytes/sec
'm' = Mbits/sec 'M' = MBytes/sec
-i, --interval n设置每次报告之间的时间间隔,单位为秒。
如果设置为⾮零值,就会按照此时间间隔输出测试报告。
默认值为零。
-F, --file name客户端:从⽂件中读取并写⼊⽹络,⽽不是使⽤随机数据;
服务器端:从⽹络读取并写⼊⽂件,⽽不是将数据丢弃。
-A, --
affinity n/n,m-F 如果可能的话,设置CPU关联性(仅为Linux和FreeBSD)。
在客户机和服务器上,您都可以使⽤这个参数的n形式来设置本地关联(在这⾥n是⼀个CPU数字)。
此外,在客户端,您可以使盖服务器的亲合性。
注意,在使⽤这个特性时,进程只会绑定到⼀个CPU(⽽不是⼀个包含潜在的多个CPU的集合)。
-B, --bind host绑定到主机⼀个地址。
对于客户端,这设置了出站接⼝。
对于服务器,这将设置传⼊的接⼝。
只适⽤于多⽹卡主机。
-V, --verbose给更详细的输出
-J, --json以JSON格式输出
--logfile file将输出发送到⼀个⽇志⽂件。
(新iPerf 3.1)
--d, --debug显⽰debug信息
-v, --version显⽰版本信息并退出。
-h, --help显⽰帮助信息
服务器选项
命令⾏选项描述
-s, --server在服务器模式下运⾏iPerf。
(这⼀次只允许⼀次iperf连接)
-D, --daemon在后台运⾏服务器作为守护进程。
-I, --pidfile file使⽤进程ID编写⼀个⽂件,在作为守护进程运⾏时最有⽤。
(新iPerf 3.1)
客户端选项
命令⾏选项描述
-c, --client host在客户端模式下运⾏iPerf,连接到在主机上运⾏的iPerf服务器。
--sctp使⽤SCTP⽽不是TCP(Linux、FreeBSD和Solaris)。
(新iPerf 3.1)
-u, --udp使⽤UDP⽽不是TCP。
参见-b选项。
-b, --
bandwidth n[KM]
UDP模式使⽤的带宽,单位bits/sec。
此选项与-u选项相关。
默认值是1 Mbit/sec。
-t, --time n设置传输的总时间。
Iperf在指定的时间内,重复的发送指定长度的数据包。
默认是10秒钟。
参考-l与-n选项。
-n, --num n[KM]传送的缓冲器数量。
通常情况,Iperf按照10秒钟发送数据。
-n参数跨越此限制,按照指定次数发送指定长度的数据,⽽不论该操作耗费多少时间。
参考-l与-t选项。
-k, --
blockcount n[KM]⽤于传输的块(数据包)的数量。
(⽽不是-t或-n)也可以看到-t,-l和-n选项
-l, --length n[KM]设置读写缓冲区的长度。
TCP⽅式默认为8KB,UDP⽅式默认为1470字节。
-P, --parallel n线程数。
指定客户端与服务端之间使⽤的线程数。
默认是1线程。
需要客户端与服务器端同时使⽤此参数。
-R, --reverse以反向模式运⾏(服务器发送,客户端接收)。
-w, --
window n[KM]将套接字缓冲区⼤⼩设置为指定的值。
对于TCP,这设置了TCP窗⼝的⼤⼩。
-M, --set-mss n尝试设置TCP最⼤段⼤⼩(MSS)。
MSS通常是MTU-40字节的ip报头。
对于以太⽹,MSS是1460字节(1500字节MTU)。
-N, --no-delay设置TCP不延迟选项,使Nagle的算法失效。
通常情况下,像telnet这样的交互式应⽤程序通过禁⽤。
-4, --version4只使⽤IPv4。
-6, --version4o只使⽤IPv6。
-S, --tos n ⽤于输出数据包的服务类型。
(许多路由器忽略了TOS字段。
)您可以使⽤“0x”前缀指定⼗六进制值,在⼋进制中使⽤“0”前缀,或在⼗进制中。
例如,'0x10'⼗六进制='020'⼋进制='16'⼩数图号是:
IPTOS_LOWDELAY minimize delay 0x10
IPTOS_THROUGHPUT maximize throughput 0x08
Linux每天⼀个命令:iperf
iperf命令
Iperf 是⼀个⽹络⼯具。
Iperf可以测试最⼤TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。
下载地址:https://iperf.fr/iperf-download.php#fedora
⽤户⽂档地址:https://iperf.fr/iperf-doc.php
安装iperf:
[root@server-A ~]# rpm -ivh iperf3-3.1.3-1.fc24.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:iperf3-3.1.3-1.fc24 ################################# [100%]
[root@server-A ~]# rpm -ql iperf3
/usr/bin/iperf3
/usr/lib64/libiperf.so.0
/usr/lib64/libiperf.so.0.0.0
/usr/share/doc/iperf3
/usr/share/doc/iperf3/LICENSE
/usr/share/doc/iperf3/README.md
/usr/share/doc/iperf3/RELEASE_NOTES
/usr/share/man/man1/iperf3.1.gz
/usr/share/man/man3/libiperf.3.gz
iperf3选项:
IPTOS_RELIABILITY maximize reliability 0x04
IPTOS_LOWCOST minimize cost 0x02
-L, --flowlabel n设置IPv6流标签(⽬前仅在Linux上⽀持)。
-Z, --zerocopy使⽤“零拷贝”发送数据的⽅法,例如sendfile(2),⽽不是通常的写⼊(2)。
这使⽤了更少的CPU。
-O, --omit n忽略测试的前n秒,跳过TCP TCP慢启动周期。
-T, --title str在每个输出⾏前⾯加上这个字符串。
-C, --linux-
congestion algo设置拥塞控制算法(Linux只针对iPerf 3.0、Linux和FreeBSD为iPerf 3.1)。
iperf3实例:
带宽测试通常采⽤UDP模式,因为能测出极限带宽、时延抖动、丢包率。
在进⾏测试时,⾸先以链路理论带宽作为数据发送速率进⾏测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先⽤-b 100M进⾏测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进⾏测试,会发现时延抖动和丢包率⽐第⼀次好很多,重复测试⼏次,就能得出稳定的实际带宽。
UDP模式:在client端使⽤-u选项
server:
[root@server-A ~]# iperf3 -s -V
iperf 3.1.3
Linux server-A 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 2216:42:41 UTC 2016 x86_64
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Time: Wed, 20 Sep 201716:10:18 GMT
Accepted connection from 192.168.1.120, port 41138
Cookie: client-B.1505859092.776727.2dfae62a4
[ 5] local 192.168.1.130 port 5201 connected to 192.168.1.120 port 51883
Starting Test: protocol: UDP, 1 streams, 8192byte blocks, omitting 0 seconds, 2 second test
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 120 KBytes 982 Kbits/sec 1638910.193 ms 0/15 (0%)
[ 5] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec 583573.766 ms 0/16 (0%)
[ 5] 2.00-2.05 sec 0.00 Bytes 0.00 bits/sec 583573.766 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-2.05 sec 0.00 Bytes 0.00 bits/sec 583573.766 ms 0/31 (0%)
CPU Utilization: local/receiver 0.0% (0.0%u/0.0%s), remote/sender 0.0% (0.0%u/0.0%s)
iperf 3.1.3
Linux server-A 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 2216:42:41 UTC 2016 x86_64
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
client:
#设置传输时间为2秒
[root@client-B ~]# iperf3 -c 192.168.1.130 -t 2 -u
Connecting to host 192.168.1.130, port 5201
[ 4] local 192.168.1.120 port 51883 connected to 192.168.1.130 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.01 sec 128 KBytes 1.04 Mbits/sec 16
[ 4] 1.01-2.00 sec 128 KBytes 1.05 Mbits/sec 16
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-2.00 sec 256 KBytes 1.05 Mbits/sec 583573.766 ms 0/31 (0%)
[ 4] Sent 31 datagrams
iperf Done.
#客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。
[root@client-B ~]# iperf3 -u -c 192.168.1.130 -b 5M -P 30 -t 60
#以100M为数据发送速率,进⾏上下⾏带宽测试。
#上传带宽测试
[root@client-B ~]# iperf3 -u -c 192.168.1.130 -b 100M -t 60
#下载带宽测试,使⽤-R选项
[root@client-B ~]# iperf3 -u -c 192.168.1.130 -b 100M -R -t 60
TCP模式:默认使⽤TCP
server:
[root@server-A ~]# iperf3 -s -V
iperf 3.1.3
Linux server-A 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 2216:42:41 UTC 2016 x86_64
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Time: Wed, 20 Sep 201716:30:44 GMT
Accepted connection from 192.168.1.120, port 41158
Cookie: client-B.1505860318.231455.1c28c3a96
TCP MSS: 1448 (default)
[ 5] local 192.168.1.130 port 5201 connected to 192.168.1.120 port 41160
Starting Test: protocol: TCP, 1 streams, 131072byte blocks, omitting 0 seconds, 2 second test
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 499 MBytes 4.18 Gbits/sec
[ 5] 1.00-2.00 sec 499 MBytes 4.19 Gbits/sec
[ 5] 2.00-2.04 sec 17.8 MBytes 3.79 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-2.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-2.04 sec 1016 MBytes 4.18 Gbits/sec receiver
CPU Utilization: local/receiver 5.4% (0.0%u/5.4%s), remote/sender 0.0% (0.0%u/0.0%s)
client:
#在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
[root@client-B ~]# iperf3 -c 192.168.1.130 -t 60
Connecting to host 192.168.1.130, port 5201
[ 4] local 192.168.1.120 port 41226 connected to 192.168.1.130 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 497 MBytes 4.17 Gbits/sec 0 2.03 MBytes
[ 4] 1.00-2.00 sec 464 MBytes 3.89 Gbits/sec 0 2.49 MBytes
[ 4] 2.00-3.00 sec 508 MBytes 4.25 Gbits/sec 71 1.80 MBytes
[ 4] 3.00-4.00 sec 532 MBytes 4.47 Gbits/sec 0 1.88 MBytes
[ 4] 4.00-5.00 sec 520 MBytes 4.36 Gbits/sec 0 1.97 MBytes
[ 4] 5.00-6.00 sec 475 MBytes 3.98 Gbits/sec 0 2.04 MBytes
[ 4] 6.00-7.00 sec 519 MBytes 4.36 Gbits/sec 59 1.48 MBytes
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-7.52 sec 3.69 GBytes 4.22 Gbits/sec 130 sender
[ 4] 0.00-7.52 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
#客户端同时向服务器端发起30个连接线程。
[root@client-B ~]# iperf3 -c 192.168.1.130 -P 30 -t 60
#进⾏上下⾏带宽测试。
#上传带宽测试
[root@client-B ~]# iperf3 -c 192.168.1.130 -t 60
#下载带宽测试,使⽤-R选项
[root@client-B ~]# iperf3 -c 192.168.1.130 -R -t 60
iperf3介绍到此结束;有兴趣的朋友可以看下⽤户⽂档,其中也有iperf版本2的详细介绍
***********************************************************
学习永远不晚。
——⾼尔基
***********************************************************。