本文下載鏈接
網(wǎng)絡(luò)性能評(píng)估主要是監(jiān)測(cè)網(wǎng)絡(luò)帶寬的使用率,將網(wǎng)絡(luò)帶寬利用最大化是保證網(wǎng)絡(luò)性能的基礎(chǔ),但是由于網(wǎng)絡(luò)設(shè)計(jì)不合理、網(wǎng)絡(luò)存在安全漏洞等原因,都會(huì)導(dǎo)致網(wǎng)絡(luò)帶寬利用率不高。要找到網(wǎng)絡(luò)帶寬利用率不高的原因,就需要對(duì)網(wǎng)絡(luò)傳輸進(jìn)行監(jiān)控,此時(shí)就需要用到一些網(wǎng)絡(luò)性能評(píng)估工具,而Iperf就是這樣一款網(wǎng)絡(luò)帶寬測(cè)試工具。
一、Iperf簡(jiǎn)介
1、什么是iperf?
Iperf是美國(guó)伊利諾斯大學(xué)(University of Illinois)開發(fā)的一種開源的網(wǎng)絡(luò)性能測(cè)試工具。可以用來(lái)測(cè)試網(wǎng)絡(luò)節(jié)點(diǎn)間(也包括回環(huán))TCP或UDP連接的性能,包括帶寬、抖動(dòng)以及丟包率,其中抖動(dòng)和丟包率適應(yīng)于UDP測(cè)試,而帶寬測(cè)試適應(yīng)于TCP和UDP。
Iperf是一款基于TCP/IP和UDP/IP的網(wǎng)絡(luò)性能測(cè)試工具,可以用來(lái)測(cè)量網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)質(zhì)量,提供網(wǎng)絡(luò)延遲抖動(dòng)、數(shù)據(jù)包丟失率、最大傳輸單元等統(tǒng)計(jì)信息。網(wǎng)絡(luò)管理員可以根據(jù)這些信息了解并判斷網(wǎng)絡(luò)性能問(wèn)題,從而定位網(wǎng)絡(luò)瓶頸,解決網(wǎng)絡(luò)故障。
Iperf 是一款基于命令行模式的網(wǎng)絡(luò)性能測(cè)試工具,是跨平臺(tái)的,提供橫跨Windows、Linux、Mac的全平臺(tái)支持。iperf 全程使用內(nèi)存作為發(fā)送/接收緩沖區(qū),不受磁盤性能的影響,對(duì)于機(jī)器配置要求很低。不過(guò)由于是命令行工具, iperf 不支持輸出測(cè)試圖形。
Iperf可以測(cè)試TCP和UDP帶寬質(zhì)量,具有多種參數(shù)和UDP特性,可以用來(lái)測(cè)試一些網(wǎng)絡(luò)設(shè)備如路由器,防火墻,交換機(jī)等的性能。
2、Iperf的功能
(1)TCP方面
① 測(cè)量網(wǎng)絡(luò)帶寬
② 報(bào)告MSS/MTU值的大小和觀測(cè)值
③ 支持TCP窗口值通過(guò)套接字緩沖
④ 當(dāng)P線程或Win32線程可用時(shí),支持多線程??蛻舳伺c服務(wù)端支持同時(shí)多重連接
(2)UDP方面
① 客戶端可以創(chuàng)建指定帶寬的UDP流
② 測(cè)量丟包
③ 測(cè)量延遲
④ 支持多播
⑤ 當(dāng)P線程可用時(shí),支持多線程??蛻舳伺c服務(wù)端支持同時(shí)多重連接(不支持Windows)
(3)其他方面
① 在適當(dāng)?shù)牡胤?,選項(xiàng)中可以使用K(kilo-)和M(mega-)。例如131072字節(jié)可以用128K代替。
② 可以指定運(yùn)行的總時(shí)間,甚至可以設(shè)置傳輸?shù)臄?shù)據(jù)總量。
③ 在報(bào)告中,為數(shù)據(jù)選用最合適的單位。
④ 服務(wù)器支持多重連接,而不是等待一個(gè)單線程測(cè)試。
⑤ 在指定時(shí)間間隔重復(fù)顯示網(wǎng)絡(luò)帶寬,波動(dòng)和丟包情況。
⑥ 服務(wù)器端可作為后臺(tái)程序運(yùn)行。
⑦ 服務(wù)器端可作為Windows 服務(wù)運(yùn)行。
⑧ 使用典型數(shù)據(jù)流來(lái)測(cè)試鏈接層壓縮對(duì)于可用帶寬的影響。
二、Iperf的安裝
1、iperf的版本
Iperf有兩種版本,windows版和linux版本。
(1)Unix/Linux版
Unix/Linux版更新比較快,版本最新,目前最新的版本是iperf3.0。
Linux版本下載地址:http://code.google.com/p/iperf/downloads/list
為了測(cè)試的準(zhǔn)確性,盡量使用linux環(huán)境測(cè)試。
(2)Windows版
Windows版iperf叫jperf,或者xjperf,更新慢,目前最新版本為1.7(打包在jperf中)。
Windows版本下載地址:http://sourceforge.net/projects/iperf/files/jperf/jperf%202.0.0/
jperf是在iperf基礎(chǔ)上開發(fā)的圖形界面程序,簡(jiǎn)化了復(fù)雜命令行參數(shù)的構(gòu)造,而且還能保存測(cè)試結(jié)果,同時(shí)實(shí)時(shí)圖形化顯示結(jié)果。
2、Windows版iperf安裝
對(duì)于windows版的iperf,下載安裝包后直接解壓,然后將解壓出來(lái)的iperf.exe和cygwin1.dll復(fù)制到%systemroot%目錄即可。
3、Linux版iperf安裝
(1)在線安裝:
CentOS安裝:yum install -y iperf3
Debian和Ubuntu安裝:apt-get install iperf3
(2)離線安裝:下載相應(yīng)版本的安裝包
gunzip -c iperf-<version>.tar.gz | tar -xvf - cd iperf-<version> ./configure make make install
三、Iperf的使用
1、Iperf的工作模式
Iperf可以運(yùn)行在任何IP網(wǎng)絡(luò)上,包括本地以太網(wǎng)、接入因特網(wǎng)、Wi-Fi網(wǎng)絡(luò)等。在工作模式上,iperf運(yùn)行于服務(wù)器、客戶端模式下,其服務(wù)器端主要用于監(jiān)聽到達(dá)的測(cè)試請(qǐng)求,而客戶端主要用于發(fā)起測(cè)試連接會(huì)話,因此要使用iperf至少需要兩臺(tái)服務(wù)器,一臺(tái)運(yùn)行在服務(wù)器模式下,另一臺(tái)運(yùn)行在客戶端模式下。
在完成iperf安裝后,執(zhí)行“iperf3 –h”即可顯示iperf的詳細(xì)用法。iperf的命令行選項(xiàng)共分為三類,分別是客戶端與服務(wù)器端公用選項(xiàng)、服務(wù)器端專用選項(xiàng)和客戶端專用選項(xiàng)。
2、Iperf常用參數(shù)(測(cè)試夠用)
(1)-s,--server:iperf服務(wù)器模式,默認(rèn)啟動(dòng)的監(jiān)聽端口為5201,eg:iperf -s
(2)-c,--client host:iperf客戶端模式,host是server端地址,eg:iperf -c 222.35.11.23
(3)-i,--interval:指定每次報(bào)告之間的時(shí)間間隔,單位為秒,eg:iperf3 -c 192.168.12.168 -i 2
(4)-p,--port:指定服務(wù)器端監(jiān)聽的端口或客戶端所連接的端口,默認(rèn)是5001端口。
(5)-u,--udp:表示采用UDP協(xié)議發(fā)送報(bào)文,不帶該參數(shù)表示采用TCP協(xié)議。
(6)-l,--len:設(shè)置讀寫緩沖區(qū)的長(zhǎng)度,單位為 Byte。TCP方式默認(rèn)為8KB,UDP方式默認(rèn)為1470字節(jié)。通常測(cè)試 PPS 的時(shí)候該值為16,測(cè)試BPS時(shí)該值為1400。
(7)-b,--bandwidth [K|M|G]:指定UDP模式使用的帶寬,單位bits/sec,默認(rèn)值是1 Mbit/sec。
(8)-t,--time:指定數(shù)據(jù)傳輸?shù)目倳r(shí)間,即在指定的時(shí)間內(nèi),重復(fù)發(fā)送指定長(zhǎng)度的數(shù)據(jù)包。默認(rèn)10秒。
(9)-A:CPU親和性,可以將具體的iperf3進(jìn)程綁定對(duì)應(yīng)編號(hào)的邏輯CPU,避免iperf進(jìn)程在不同的CPU間調(diào)度。
3、通用參數(shù)(Server端和Client端共用)
(1)-f,--farmat [k|m|g|K|M|G]:指定帶寬輸出單位,“[k|m|g|K|M|G]”分別表示以Kbits, Mbits, Gbits, KBytes, MBytes,GBytes顯示輸出結(jié)果,默認(rèn)Mbits,eg:iperf3 -c 192.168.12.168 -f M
(2)-p,--port:指定服務(wù)器端監(jiān)聽的端口或客戶端所連接的端口,默認(rèn)是5001端口。
(3)-i,--interval:指定每次報(bào)告之間的時(shí)間間隔,單位為秒,eg:iperf3 -c 192.168.12.168 -i 2
(4)-F:指定文件作為數(shù)據(jù)流進(jìn)行帶寬測(cè)試。例如:iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz
4、Server端專用參數(shù)
(1)-s,--server:iperf服務(wù)器模式,默認(rèn)啟動(dòng)的監(jiān)聽端口為5201,eg:iperf -s
(2)-c,--client host:如果iperf運(yùn)行在服務(wù)器模式,并且用-c參數(shù)指定一個(gè)主機(jī),那么iperf將只接受指定主機(jī)的連接。此參數(shù)不能工作于UDP模式。
(3)-D:Unix平臺(tái)下將Iperf作為后臺(tái)守護(hù)進(jìn)程運(yùn)行。在Win32平臺(tái)下,Iperf將作為服務(wù)運(yùn)行。
(4)-R:卸載Iperf服務(wù)(僅用于Windows)。
(5)-o:重定向輸出到指定文件(僅用于Windows)。
(6)-P,--parallel:服務(wù)器關(guān)閉之前保持的連接數(shù)。默認(rèn)是0,這意味著永遠(yuǎn)接受連接。
5、Client端專用參數(shù)
(1)-c,--client host:iperf客戶端模式,host是server端地址,eg:iperf -c 222.35.11.23
(2)-u,--udp:表示采用UDP協(xié)議發(fā)送報(bào)文,不帶該參數(shù)表示采用TCP協(xié)議。
(3)-b,--bandwidth [K|M|G]:指定UDP模式使用的帶寬,單位bits/sec,默認(rèn)值是1 Mbit/sec。
(4)-t,--time:指定數(shù)據(jù)傳輸?shù)目倳r(shí)間,即在指定的時(shí)間內(nèi),重復(fù)發(fā)送指定長(zhǎng)度的數(shù)據(jù)包。默認(rèn)10秒。
(5)-l,--len:設(shè)置讀寫緩沖區(qū)的長(zhǎng)度,單位為 Byte。TCP默認(rèn)為8KB,UDP默認(rèn)為1470字節(jié)。通常測(cè)試 PPS 的時(shí)候該值為16,測(cè)試BPS時(shí)該值為1400。
(6)-n,--num [K|M|G]:指定傳輸數(shù)據(jù)包的字節(jié)數(shù),例如:iperf3 -c 192.168.12.168 –n 100M
(7)-P,--parallel:指定客戶端與服務(wù)端之間使用的線程數(shù)。默認(rèn)是1個(gè)線程。需要客戶端與服務(wù)器端同時(shí)使用此參數(shù)。
(8)-w,--window:指定套接字緩沖區(qū)大小,在TCP方式下,此設(shè)置為TCP窗口的大小。在UDP方式下,此設(shè)置為接受UDP數(shù)據(jù)包的緩沖區(qū)大小,用來(lái)限制可以接收數(shù)據(jù)包的最大值
(9)-B,--bind:用來(lái)綁定一個(gè)主機(jī)地址或接口,這個(gè)參數(shù)僅用于具有多個(gè)網(wǎng)絡(luò)接口的主機(jī)。在UDP模式下,此參數(shù)用于綁定和加入一個(gè)多播組。
(10)-M,--mss:設(shè)置TCP最大信息段的值
(11)-N,--nodelay:設(shè)置TCP無(wú)延時(shí)
(12)-V:綁定一個(gè)IPv6地址。
(13)-d,--dualtest:運(yùn)行雙測(cè)試模式。將使服務(wù)器端反向連接到客戶端,使用-L參數(shù)中指定的端口(或默認(rèn)使用客戶端連接到服務(wù)器端的端口)。使用參數(shù)-r以運(yùn)行交互模式。
(14)-L,--listenport:指定服務(wù)端反向連接到客戶端時(shí)使用的端口。默認(rèn)使用客戶端連接至服務(wù)端的端口。
(15)-r,--tradeoff:往復(fù)測(cè)試模式。當(dāng)客戶端到服務(wù)器端的測(cè)試結(jié)束時(shí),服務(wù)器端反向連接至客戶端。當(dāng)客戶端連接終止時(shí),反向連接隨即開始。如果需要同時(shí)進(jìn)行雙向測(cè)試,請(qǐng)嘗試-d參數(shù)。
6、其他參數(shù)
(1)-h,--help:顯示命令行參考并退出。
[root]# iperf3 -h
Usage: iperf3 [-s|-c host] [options]
iperf3 [-h|--help] [-v|--version]
(2)-v,--version:顯示版本信息和編譯信息并退出。
四、Iperf使用實(shí)例
1、環(huán)境準(zhǔn)備:
(1)Server端IP地址:192.168.0.120
(2)Server端IP地址:192.168.0.121
2、測(cè)試TCP吞吐量
(1)Server端開啟iperf的服務(wù)器模式,指定TCP端口:
[root@iperf-server ~]# iperf3 -s -i 1 -p 520
------------------------------------------------------------
Server listening on TCP port 520
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
(2)Client端啟動(dòng)iperf的客戶端模式,連接服務(wù)端
[root@iperf-client ~]# iperf -c 192.168.0.120 -i 1 -t 60 -p 520
------------------------------------------------------------
Client connecting to 192.168.0.120, TCP port 520
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.121 port 50616 connected with 192.168.0.120 port 520
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec
(3)Server端監(jiān)聽結(jié)果
------------------------------------------------------------
Server listening on TCP port 5001 TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.0.120 port 520 connected with 192.168.0.121 port 50616
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec
① Interval表示時(shí)間間隔。
② Transfer表示時(shí)間間隔里面轉(zhuǎn)輸?shù)臄?shù)據(jù)量。
③ Bandwidth是時(shí)間間隔里的傳輸速率。
(4)測(cè)試多線程TCP吞吐量
如果沒有指定發(fā)送方式,iPerf客戶端只會(huì)使用單線程。
iperf3 -c 192.168.0.120 -P 30 -t 60
(5)進(jìn)行上下行帶寬測(cè)試(雙向傳輸)
iperf3 -c 192.168.0.120 -d -t 60
(6)停止iperf3服務(wù)進(jìn)程
要停止iperf3服務(wù)進(jìn)程,請(qǐng)按CTRL+z或CTRL+c
建議在Server端執(zhí)行sar命令來(lái)統(tǒng)計(jì)實(shí)際收到的包并作為實(shí)際結(jié)果:sar -n DEV 1 320。
3、測(cè)試UDP吞吐量
帶寬測(cè)試通常采用UDP模式,因?yàn)槟軠y(cè)出極限帶寬、時(shí)延抖動(dòng)、丟包率。在進(jìn)行測(cè)試時(shí),首先以鏈路理論帶寬作為數(shù)據(jù)發(fā)送速率進(jìn)行測(cè)試,例如,從客戶端到服務(wù)器之間的鏈路的理論帶寬為100Mbps,先用-b 100M進(jìn)行測(cè)試,然后根據(jù)測(cè)試結(jié)果(包括實(shí)際帶寬,時(shí)延抖動(dòng)和丟包率),再以實(shí)際帶寬作為數(shù)據(jù)發(fā)送速率進(jìn)行測(cè)試,會(huì)發(fā)現(xiàn)時(shí)延抖動(dòng)和丟包率比第一次好很多,重復(fù)測(cè)試幾次,就能得出穩(wěn)定的實(shí)際帶寬。
(1)Server端開啟iperf的服務(wù)器模式,指定UDP端口:
[root@iperf-server ~]# iperf3 -s -i 1 -p 521
------------------------------------------------------------
Server listening on port 521
------------------------------------------------------------
(2)Client端啟動(dòng)iperf的客戶端模式,連接服務(wù)端
[root@iperf-client ~]# iperf3 -u -c 192.168.0.120 -b 100m -t 60 -p 521
------------------------------------------------------------
Client connecting to 192.168.0.120, port 521
------------------------------------------------------------
[ 3] local 192.168.0.121 port 50616 connected with 192.168.0.120 port 521
[ ID] Interval Transfer Bandwidth TotalDatagrams
[ 3] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec 82
(3)Server端監(jiān)聽結(jié)果
------------------------------------------------------------
Server listening on port 521
------------------------------------------------------------
[ 4] local 192.168.0.120 port 520 connected with 192.168.0.121 port 50616
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec 0.007 ms 0/82 (0%)
① Jitter為抖動(dòng),在連續(xù)傳輸中的平滑平均值差。
② Lost為丟包數(shù)量。
③ Total Datagrams為包數(shù)量。
(4)測(cè)試多線程UDP吞吐量
如果沒有指定發(fā)送方式,iPerf客戶端只會(huì)使用單線程。
iperf3 -u -c 192.168.1.1 -b 5M -P 30 -t 60
(5)進(jìn)行上下行帶寬測(cè)試(雙向傳輸)
iperf3 -u -c 192.168.1.1 -b 100M -d -t 60
五、Jperf介紹
1、Jperf簡(jiǎn)介
jperf是基于iperf開發(fā)的圖形界面程序,簡(jiǎn)化了復(fù)雜命令行參數(shù)的構(gòu)造,而且還能夠保存測(cè)試結(jié)果,同時(shí)實(shí)時(shí)圖形化顯示結(jié)果。JPerf可以測(cè)試TCP和UDP帶寬質(zhì)量。JPerf可以測(cè)量最大TCP帶寬,具有多種參數(shù)和UDP特性。JPerf可以報(bào)告帶寬,延遲抖動(dòng)和數(shù)據(jù)包丟失。
2、JPerf2.0運(yùn)行環(huán)境
(1)操作系統(tǒng):Java運(yùn)行環(huán)境
(2)網(wǎng)絡(luò)要求:Jperf可以在任何IP網(wǎng)絡(luò)上運(yùn)行,包括本地以太網(wǎng),因特網(wǎng)接入連接和Wi-Fi網(wǎng)絡(luò)。
(3)其他要求:JPerf必須安裝兩個(gè)組件:JPerf 服務(wù)器和JPerf客戶端。
3、JPerf2.0頁(yè)面介紹

(1)Iperf命令行(無(wú)法直接輸入)

① 服務(wù)端設(shè)置

? 監(jiān)聽端口:5001
? client limit:客戶端限制,僅允許指定客戶端連接
? Num Connections:最大允許連接的數(shù)量,為0不限制
② 客戶端設(shè)置

服務(wù)器地址:10.0.115.82 ,端口:5001 ,并發(fā)流:1個(gè)
(2)應(yīng)用層設(shè)置

① 兼容舊版本(當(dāng)server端和client端版本不一樣時(shí)使用)

② 設(shè)置測(cè)試模式:傳輸字節(jié)總量大小15Bytes或者按傳輸時(shí)間總長(zhǎng)度15秒

③ 同時(shí)進(jìn)行雙向傳輸測(cè)試

④ 單獨(dú)進(jìn)行雙向傳輸測(cè)試,先測(cè)c到s的帶寬

⑤ 指定需要傳輸?shù)奈募?/p>

⑥ 顯示tcp最大mtu值

(3)傳輸層設(shè)置
① TCP協(xié)議
? 設(shè)置緩沖區(qū)大小

? 指定TCP窗口大小

? 設(shè)定TCP數(shù)據(jù)包的最大mtu值

? 設(shè)定TCP不延時(shí)

② UDP協(xié)議
? 設(shè)置UDP最大帶寬

? 設(shè)置UDP緩沖區(qū)

? UDP包封裝大?。耗J(rèn)1470 byte

③ IP層設(shè)置

? 指定ttl值

? 服務(wù)類型(Type of Service, ToS),大小范圍從0x10 (最小延遲) 到0x2 (最少費(fèi)用)

本文下載鏈接
附錄:參考資料
1.《網(wǎng)絡(luò)性能測(cè)試方法》
作者:阿里云幫助文檔
地址:https://help.aliyun.com/knowledge_detail/55757.html#HFXbx
2.《iperf-百度百科》(文章)
作者:百度百科網(wǎng)友
地址:https://baike.baidu.com/item/iperf/11067694?fr=aladdin
3.《Linux網(wǎng)絡(luò)性能評(píng)估工具iperf 、CHARIOT測(cè)試網(wǎng)絡(luò)吞吐量》(文章)
作者:Konglingbin
地址:https://www.cnblogs.com/klb561/p/9215952.html
4.《Linux命令大全-iperf命令》
作者:不確定
地址:https://man.linuxde.net/iperf
5.《網(wǎng)絡(luò)性能測(cè)試工具iPerf功能與使用教程》
作者:不確定
地址:http://www.veryhuo.com/a/view/159685.html
6.《iPerf圖形化工具Jperf圖文使用教程》
作者:不確定
地址:http://www.veryhuo.com/a/view/159704.html
7.《使用iPerf進(jìn)行網(wǎng)絡(luò)吞吐量測(cè)試》
作者:放開那個(gè)電扇
地址:http://www.itdecent.cn/p/15f888309c72
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 定義 網(wǎng)絡(luò)協(xié)議為計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換而建立的規(guī)則、標(biāo)準(zhǔn)或約定的集合。網(wǎng)絡(luò)協(xié)議主要由三個(gè)要素組成:語(yǔ)義、語(yǔ)法及時(shí)...
- 一、說(shuō)明 Iperf是一個(gè)網(wǎng)絡(luò)性能測(cè)試工具,可以測(cè)試TCP和UDP帶寬質(zhì)量。 Iperf可以測(cè)量最大TCP帶寬,具...
- 一、Speedtest測(cè)試外網(wǎng)網(wǎng)速 Speedtest是用來(lái)測(cè)試網(wǎng)絡(luò)性能的開源軟件,在Linux下面安裝Speed...
- 下午工作上一件事沒考慮周到,突然覺得自己真的太弱了,是每天做這些不用動(dòng)腦子的事太多了嗎?好失望。好多英文不會(huì)寫,更...
- 今天過(guò)了一天周一,明天還是周一。五一小長(zhǎng)假結(jié)束回來(lái)的第一天,也是我新一輪雞血的第一天。 我果然叨叨叨的耗費(fèi)著,我果...