一、netperf簡(jiǎn)介
??Netperf是一種網(wǎng)絡(luò)性能的測(cè)量工具,主要針對(duì)基于TCP或UDP的傳輸。Netperf根據(jù)應(yīng)用的不同,可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測(cè)試,即批量數(shù)據(jù)傳輸(bulk data transfer)模式和請(qǐng)求/應(yīng)答(request/reponse)模式。Netperf測(cè)試結(jié)果所反映的是一個(gè)系統(tǒng)能夠以多快的速度向另外一個(gè)系統(tǒng)發(fā)送數(shù)據(jù),以及另外一個(gè)系統(tǒng)能夠以多快的速度接收數(shù)據(jù)。
??Netperf工具以client/server方式工作。server端是netserver,用來(lái)偵聽(tīng)來(lái)自client端的連接,client端是netperf,用來(lái)向server發(fā)起網(wǎng)絡(luò)測(cè)試。在client與server之間,首先建立一個(gè)控制連接,傳遞有關(guān)測(cè)試配置的信息,以及測(cè)試的結(jié)果;在控制連接建立并傳遞了測(cè)試配置信息以后,client與server之間會(huì)再建立一個(gè)測(cè)試連接,用來(lái)來(lái)回傳遞著特殊的流量模式,以測(cè)試網(wǎng)絡(luò)的性能。
二、安裝步驟
1、安裝gcc編譯環(huán)境
[root@s142 ~]# yum install -y gcc*
2、下載netperf軟件包
[root@s142 software]# wget https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip
3、解壓軟件包
[root@s142 software]# unzip netperf-2.7.0.zip
4、預(yù)編譯
[root@s142 software]# cd netperf-netperf-2.7.0/
[root@s142 netperf-netperf-2.7.0]# ./configure
5、編譯
[root@s142 netperf-netperf-2.7.0]# make
make all-recursive
…
make[2]: Leaving directory `/opt/software/netperf-netperf-2.7.0’
make[1]: Leaving directory `/opt/software/netperf-netperf-2.7.0’
5、安裝
[root@s142 netperf-netperf-2.7.0]# make install
6、查看命令版本
[root@s142 netperf-netperf-2.7.0]# netserver -V
Netperf version 2.7.0
[root@s142 netperf-netperf-2.7.0]# netperf -V
Netperf version 2.7.0
7、獲取命令幫助
??實(shí)際上如果不執(zhí)行編譯安裝命令,也可以在src目錄下找到命令,并直接執(zhí)行命令。當(dāng)然我們執(zhí)行了編譯安裝就不需要切換到編譯目錄下執(zhí)行命令了,可以在任意目錄下執(zhí)行這兩個(gè)命令。
[root@s142 src]# ./netserver --help
./netserver: invalid option – ‘-’
Usage: netserver [options]
Options:
-h Display this text
-D Do not daemonize
-d Increase debugging output
-f Do not spawn chilren for each test, run serially
-L name,family Use name to pick listen address and family for family
-N No debugging output, even if netperf asks
-p portnum Listen for connect requests on portnum.
-4 Do IPv4
-6 Do IPv6
-v verbosity Specify the verbosity level
-V Display version information and exit
-Z passphrase Expect passphrase as the first thing received
三、netperf網(wǎng)絡(luò)性能測(cè)試實(shí)踐
1、測(cè)試規(guī)劃
??netperf工具工作模式為server/client模式,所以我們需要兩臺(tái)測(cè)試服務(wù)器,都安裝netperf工具,然后一端模式服務(wù)端,一端模擬客戶端。
2、批量數(shù)據(jù)(TCP流)傳輸測(cè)試
- 在s152服務(wù)器上運(yùn)行服務(wù)端
Netperf缺省情況下進(jìn)行TCP批量傳輸,即-t TCP_STREAM。測(cè)試過(guò)程中,netperf向netserver發(fā)送批量的TCP數(shù)據(jù)分組,以確定數(shù)據(jù)傳輸過(guò)程中的吞吐量。
[root@s152 netperf-netperf-2.7.0]# netserver -p 8888
Starting netserver with host ‘IN(6)ADDR_ANY’ port ‘8888’ and family AF_UNSPEC
[root@s152 netperf-netperf-2.7.0]# netstat -tnpl |grep 8888
tcp6 0 0 :::8888 ::?? LISTEN 9043/netserver
- 在s142客戶端上測(cè)試連接
通過(guò)測(cè)試結(jié)果可以看到使用16384字節(jié)大小socket發(fā)送緩存,接受緩存大小為87380字節(jié),歷時(shí)10.26秒,帶寬吞吐量為93.96Mbit/s。
[root@s142 netperf-netperf-2.7.0]# netperf -H 192.168.0.152 -p 8888
3、批量數(shù)據(jù)(UDP流)傳輸測(cè)試
- 在s152服務(wù)器上運(yùn)行服務(wù)端
Netperf測(cè)試UDP數(shù)據(jù)包無(wú)需在服務(wù)器端指定參數(shù),所以不用重啟服務(wù)器端,只需要在客戶端加上-t UDP_STREAM
[root@s152 netperf-netperf-2.7.0]# netserver -p 8888
- 在s142客戶端上測(cè)試連接
UDP測(cè)試結(jié)果有兩行,第一行顯示的是客戶端的發(fā)送統(tǒng)計(jì),這里的吞吐量表示Netperf向本地socket發(fā)送分組的能力。第二行顯示的是服務(wù)器端接收的情況,由于UDP協(xié)議的不可靠性,遠(yuǎn)端系統(tǒng)的接收吞吐量要遠(yuǎn)遠(yuǎn)小于發(fā)送出去的吞吐量。
[root@s142 netperf-netperf-2.7.0]# netperf -t UDP_STREAM -H 192.168.0.152 -p 8888 – -m 1024 -M 1024 -s 16384 -S 16384
4、TCP長(zhǎng)連接性能測(cè)試
- 測(cè)試請(qǐng)求/應(yīng)答(request/response)網(wǎng)絡(luò)流量的性能,TCP_RR模式
TCP_RR方式的測(cè)試對(duì)象是多次TCP request和response的交易過(guò)程,但是它們發(fā)生在同一個(gè)TCP連接中,這種模式常常出現(xiàn)在數(shù)據(jù)庫(kù)應(yīng)用中。數(shù)據(jù)庫(kù)的client程序與server程序建立一個(gè)TCP連接以后,就在這個(gè)連接中傳送數(shù)據(jù)庫(kù)的多次交易過(guò)程。Netperf輸出的結(jié)果也是由兩行組成。第一行顯示本地系統(tǒng)的情況,第二行顯示的是遠(yuǎn)端系統(tǒng)的信息。
[root@s142 netperf-netperf-2.7.0]# netperf -t TCP_RR -H 192.168.0.152 -p 8888
[root@s142 netperf-netperf-2.7.0]# netperf -t TCP_RR -H 192.168.0.152 -p 8888 – -r 500,500
5、TCP短連接性能測(cè)試
- 測(cè)試請(qǐng)求/應(yīng)答(request/response)網(wǎng)絡(luò)流量的性能,TCP_CRR模式
與TCP_RR不同,TCP_CRR為每次交易建立一個(gè)新的TCP連接。最典型的應(yīng)用就是HTTP,每次HTTP交易是在一條單獨(dú)的TCP連接中進(jìn)行的。因此,由于需要不停地建立新的TCP連接,并且在交易結(jié)束后拆除TCP連接,交易率一定會(huì)受到很大的影響。
[root@s142 netperf-netperf-2.7.0]# netperf -t TCP_CRR -H 192.168.0.152 -p 8888
[root@s142 netperf-netperf-2.7.0]# netperf -t TCP_CRR -H 192.168.0.152 -p 8888 – -r 500,500文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789430.html
四、常用參數(shù)說(shuō)明
1、netserver命令常用參數(shù)說(shuō)明
參數(shù) | 參數(shù)說(shuō)明 |
---|---|
-h | 獲取命令幫助 |
-V | 查看命令版本 |
-p | 指定監(jiān)聽(tīng)端口 |
-4 | 指定IPv4協(xié)議 |
-6 | 指定IPv6協(xié)議 |
-D | 不在后臺(tái)運(yùn)行,默認(rèn)后臺(tái)運(yùn)行 |
-d | 增加debug輸出 |
-L | 使用主機(jī)名監(jiān)聽(tīng) |
-N | 不輸出debug信息 |
2、netperf命令常用參數(shù)說(shuō)明
??netperf命令格式為:netperf [global options] – [test specific options]
如下列表中的-m,-r這些參數(shù)都是測(cè)試專(zhuān)有參數(shù),需要寫(xiě)在–后。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789430.html
參數(shù) | 參數(shù)說(shuō)明 |
---|---|
-t testname | 指定進(jìn)行的測(cè)試類(lèi)型(TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR),可以通過(guò)man netperf命令查看有哪些類(lèi)型 |
-H ip | 指定遠(yuǎn)端運(yùn)行netserver的server IP地址 |
-p port | 指定遠(yuǎn)端運(yùn)行netserver的port端口 |
-L testlen | 指定測(cè)試時(shí)間,默認(rèn)10s,單位秒 |
-V | 查看命令版本 |
-h | 獲取命令幫助 |
-s size | 設(shè)置本地系統(tǒng)的socket發(fā)送與接收緩沖大小 |
-S size | 設(shè)置遠(yuǎn)端系統(tǒng)的socket發(fā)送與接收緩沖大小 |
-m size | 設(shè)置本地系統(tǒng)發(fā)送測(cè)試分組的大小 |
-M size | 設(shè)置遠(yuǎn)端系統(tǒng)接收測(cè)試分組的大小 |
-r req,resp | 設(shè)置request和reponse分組的大小 |
-D | 對(duì)本地與遠(yuǎn)端系統(tǒng)的socket設(shè)置TCP_NODELAY選項(xiàng) |
到了這里,關(guān)于Linux之網(wǎng)絡(luò)性能測(cè)試工具netperf實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!