• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Linux環(huán)境下網(wǎng)絡(luò)性能測試

            轉(zhuǎn)載自:http://www.samirchen.com/linux-network-performance-test/

            網(wǎng)絡(luò)性能測試的幾項重要指標(biāo)

            1、可用性

            測試網(wǎng)絡(luò)性能的第一步是確定網(wǎng)絡(luò)是否正常工作,最簡單的方法就是使用ping命令,通過向遠(yuǎn)端的機器發(fā)送ICMP請求,并等待接收ICMP回應(yīng),來判斷遠(yuǎn)端的機器是否連通,網(wǎng)絡(luò)是否正常工作。

            2、響應(yīng)時間

            ping命令的ICMP報文響應(yīng)一次往返所花費時間就是響應(yīng)時間,有很多因素會影響到響應(yīng)時間,如網(wǎng)段的負(fù)荷,網(wǎng)絡(luò)主機的負(fù)荷,廣播風(fēng)暴,工作不正常的網(wǎng)絡(luò)設(shè)備等等。

            3、網(wǎng)絡(luò)利用率

            網(wǎng)絡(luò)利用率是指網(wǎng)絡(luò)被使用的時間占總時間(即被使用的時間+空閑的時間)的比例。例如,Ethernet雖然是共享的,但同時卻只能有一個報文在傳輸,因此在任一時刻,Ethernet或者是100%的利用率,或者是0%的利用率。計算一個網(wǎng)段的網(wǎng)絡(luò)利用率相對比較容易,但是確定一個網(wǎng)絡(luò)的利用率就比較復(fù)雜。因此,網(wǎng)絡(luò)測試工具一般使用網(wǎng)絡(luò)吞吐量和網(wǎng)絡(luò)帶寬容量來確定網(wǎng)絡(luò)中兩個節(jié)點之間的性能。

            4、網(wǎng)絡(luò)吞吐量

            網(wǎng)絡(luò)吞吐量是指在某個時刻,在網(wǎng)絡(luò)中的兩個節(jié)點之間,提供給網(wǎng)絡(luò)應(yīng)用的剩余帶寬,通過網(wǎng)絡(luò)吞吐量可以尋找出網(wǎng)絡(luò)瓶頸。比如,即使clientserver都被分別連接到各自的100M以太網(wǎng)卡上,但是如果這兩個100M的以太網(wǎng)卡被10M的交換機連接起來,那么10M的交換機就是網(wǎng)絡(luò)的瓶頸。

            5、網(wǎng)絡(luò)帶寬容量

            與網(wǎng)絡(luò)吞吐量不同,網(wǎng)絡(luò)帶寬容量指的是在網(wǎng)絡(luò)的兩個節(jié)點之間的最大可用帶寬,這是由組成網(wǎng)絡(luò)的設(shè)備能力所決定的。

            使用iperf進(jìn)行測試

            iperf介紹

            iperf是一個TCP/IP和UDP/IP性能測試工具,能夠提供網(wǎng)絡(luò)吞吐率信息,以及震動、丟包率、最大組和最大傳輸單元大小等統(tǒng)計信息,可以由這些信息來分析網(wǎng)絡(luò)的通信性能、定位網(wǎng)絡(luò)瓶頸。

            iperf以client/server方式工作,服務(wù)器端和客戶端都使用同一程序iperf,服務(wù)器端使用-s選項,而客戶端則使用-c選項。在 client與server之間,首先建立一個控制連接,傳遞有關(guān)測試配置的信息,以及測試的結(jié)果;在控制連接建立并傳遞了測試配置信息以后,client與server之間會再建立一個測試連接,用來回傳遞著特殊的流量模式,以測試網(wǎng)絡(luò)的性能。

            iperf獲取與安裝

            下載地址:http://iperf.sourceforge.net/

            配置與安裝:

            1. [root@rh tool]# tar -zxvf iperf-2.0.2.tar.gz
            2. [root@rh tool]# cd iperf-2.0.2
            3. [root@rh iperf-2.0.2]# ./configure --prefix=/usr/netperf
            4. [root@rh iperf-2.0.2]# make
            5. [root@rh iperf-2.0.2]# make install
            6. [root@rh iperf-2.0.2]# ls /usr/netperf

            iperf的使用

            啟動server端:

            1. [root@rh iperf-2.0.2]# cd /usr/iperf/bin
            2. [root@rh bin]# ./iperf -s

            還可以設(shè)置這些參數(shù):

            服務(wù)器端選項環(huán)境變量選項說明
            -s, --server$IPERF_SERVER在服務(wù)器端運行 iperf;
            -D.以后臺方式運行 iperf 服務(wù)模式;
            -R.如果 iperf 正在運行,則將其終止運行;

            啟動client端:

            用TCP的方式測試本機到192.168.0.138主機(-c 192.168.0.138)的網(wǎng)絡(luò)性能,時長為60(-t 60),緩沖區(qū)的大小為8KB (-l 8k),每10(-i 10)打印一次測試結(jié)果。

            1. [root@rh iperf-2.0.2]# cd /usr/iperf/bin
            2. [root@rh bin]# ./iperf -c 192.168.0.138 -t 60 -l 8k -i 10
            3. ------------------------------------------------------------
            4. Client connecting to 192.168.0.138, TCP port 5001
            5. TCP window size: 23.2 KByte (default)
            6. ------------------------------------------------------------
            7. [ 3] local 192.168.0.137 port 42812 connected with 192.168.0.138 port 5001
            8. [ ID] Interval Transfer Bandwidth
            9. [ 3] 0.0-10.0 sec 1.64 GBytes 1.41 Gbits/sec
            10. [ 3] 10.0-20.0 sec 5.26 GBytes 4.52 Gbits/sec
            11. [ 3] 20.0-30.0 sec 5.26 GBytes 4.52 Gbits/sec
            12. [ 3] 30.0-40.0 sec 5.27 GBytes 4.53 Gbits/sec
            13. [ 3] 40.0-50.0 sec 5.26 GBytes 4.51 Gbits/sec
            14. [ 3] 50.0-60.0 sec 5.26 GBytes 4.52 Gbits/sec
            15. [ 3] 0.0-60.0 sec 27.9 GBytes 4.00 Gbits/sec

            還可以設(shè)置這些參數(shù):

            客戶端選項環(huán)境變量選項說明
            -b, --bandwidth$IPERF_BANDWIDTH指定客戶端通過 UDP 協(xié)議發(fā)送信息的帶寬,默認(rèn)值為 1Mbps;

            使用netperf進(jìn)行測試

            netperf介紹

            netperf是一種網(wǎng)絡(luò)性能測量工具,主要針對基于TCP或UDP的傳輸。netperf根據(jù)應(yīng)用的不同,可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測試,即批量數(shù)據(jù)傳輸(bulk data transfer)模式和請求/應(yīng)答(request/response)模式。netperf反應(yīng)的是一個系統(tǒng)能以多快的速度向另一個系統(tǒng)發(fā)送數(shù)據(jù),以及另一個系統(tǒng)能以多快的速度接受數(shù)據(jù)。

            netperf是以client/server的方式工作,server端是netserver,用來偵聽來自client 端的連接;client端是netperf,用來向server發(fā)起網(wǎng)絡(luò)測試。在client與server之間,首先建立一個控制連接,傳遞有關(guān)測試配置的信息,以及測試結(jié)果;在控制連接建立并傳遞了測試配置信息后,client與server之間會再建立一個測試連接,用來來回傳遞著特殊的流量模式,以測試網(wǎng)絡(luò)的性能。

            netperf可以模擬三種不同的TCP流量模式:

            • 單個TCP連接,批量(bulk)傳輸大量數(shù)據(jù);
            • 單個TCP連接,client請求/server應(yīng)答的交易(transaction)方式;
            • 多個TCP連接,每個連接中一對請求/應(yīng)答的交易方式

            netperf可以模擬兩種UDP的流量模式:

            • 從client到server的單向批量傳輸;
            • 請求/應(yīng)答的交易方式。

            由于UDP傳輸?shù)牟豢煽啃裕谑褂?nbsp;netperf時要確保發(fā)送的緩沖區(qū)大小不大于接收緩沖區(qū)大小,否則數(shù)據(jù)會丟失,netperf將給出錯誤的結(jié)果。因此,對于接收到分組的統(tǒng)計不一定準(zhǔn)確,需要結(jié)合發(fā)送分組的統(tǒng)計綜合得出結(jié)論。

            netperf獲取與安裝

            下載地址:http://www.netperf.org/netperf/

            配置與安裝:

            1. [root@rh tool]# tar -zxvf netperf-2.6.0.tar.gz
            2. [root@rh tool]# cd netperf-2.6.0
            3. [root@rh netperf-2.6.0]# ./configure --prefix /usr/netperf
            4. [root@rh netperf-2.6.0]# make
            5. [root@rh netperf-2.6.0]# make check
            6. [root@rh netperf-2.6.0]# make install
            7. [root@rh netperf-2.6.0]# ls /usr/netperf

            netperf使用

            啟動server端:

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netserver

            啟動client端:

            1)TCP_STREAM模式。進(jìn)行TCP批量傳輸性能測試。這是netperf缺省情況。

            批量數(shù)據(jù)傳輸?shù)湫偷睦佑蠪TP和其他類似的網(wǎng)絡(luò)應(yīng)用(即一次傳輸整個文件)。根據(jù)使用傳輸協(xié)議的不同,批量數(shù)據(jù)傳輸又分為TCP批量傳輸和UDP批量傳輸。

            用 TCP 批量傳輸?shù)姆绞?/code> (-t TCP_STREAM)測試本機到 192.168.0.138 主機(-H 192.168.0.138)的網(wǎng)絡(luò)性能,時長 60 秒(-l 60),每次發(fā)送本地發(fā)送測試分組的大小為2048Bytes (-m 2048)

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netperf -t TCP_STREAM -H 192.168.0.138 -l 60 -- -m 2048
            3. MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.138 () port 0 AF_INET
            4. Recv Send Send
            5. Socket Socket Message Elapsed
            6. Size Size Size Time Throughput
            7. bytes bytes bytes secs. 10^6bits/sec
            8. 87380 16384 2048 60.00 5463.11

            從上面netperf的輸出結(jié)果中,可以得到如下信息:

            • 1)遠(yuǎn)端系統(tǒng)(即 server)使用大小為 87380 字節(jié)的 socket 接收緩沖;
            • 2)本地系統(tǒng)(即 client)使用大小為 16384 字節(jié)的 socket 發(fā)送緩沖;
            • 3)向遠(yuǎn)端系統(tǒng)發(fā)送的測試分組大小為 2048 字節(jié),通過 -m 2048 設(shè)置;
            • 4)測試經(jīng)歷的時間為 60 秒;
            • 5)吞吐量的測試結(jié)果為 5463.11 Mbps;

            在缺省的情況下,netperf向遠(yuǎn)端系統(tǒng)發(fā)送的測試分組大小會設(shè)置為本地系統(tǒng)所使用的 socket 發(fā)送緩沖大小。

            還可以設(shè)置這些局部命令行參數(shù):

            客戶端選項變量說明
            -s$size設(shè)置本地系統(tǒng)的 socket 發(fā)送與接收緩沖大小;
            -S$size設(shè)置遠(yuǎn)端系統(tǒng)的 socket 發(fā)送與接收緩沖大小;
            -m$size設(shè)置本地系統(tǒng)發(fā)送測試分組的大小;
            -M$size設(shè)置遠(yuǎn)端系統(tǒng)接收測試分組的大小;
            -D.對本地與遠(yuǎn)端系統(tǒng)的 socket 設(shè)置 TCP_NODELAY 選項;

            通過修改以上的參數(shù),并觀察測試結(jié)果的變化,可以確定是什么因素影響了連接的吞吐量。

            例如,如果懷疑路由器由于缺乏足夠的緩沖區(qū)空間,使得轉(zhuǎn)發(fā)大的分組時存在問題,就可以改變測試分組的大小(-m),以觀察吞吐量的變化。如果當(dāng)測試分組由較大變?yōu)檩^小,而吞吐量出現(xiàn)較大的變化(比如吞吐量變大),說明網(wǎng)絡(luò)中路由器確實存在緩沖區(qū)不足的問題。

            2)UDP_STREAM,進(jìn)行 UDP 批量傳輸性能測試。

            需要注意的是此時測試分組的大小不能大于 socket 發(fā)送與接收的緩沖區(qū)大小,否則 netperf 會報錯。

            UDP_STREAM 方式使用與 TCP_STREAM 方式相同的局部命令行參數(shù)。

            用 UDP 批量傳輸?shù)姆绞?/code> (-t UDP_STREAM)測試本機到 192.168.0.138 主機(-H 192.168.0.138)的網(wǎng)絡(luò)性能,時長 60 秒(-l 60),每次發(fā)送本地發(fā)送測試分組的大小為2048Bytes (-m 2048)

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netperf -t UDP_STREAM -H 192.168.0.138 -l 60 -- -m 2048
            3. MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.138 () port 0 AF_INET
            4. Socket Message Elapsed Messages
            5. Size Size Time Okay Errors Throughput
            6. bytes bytes secs # # 10^6bits/sec
            7. 229376 2048 60.00 11159606 0 3047.29
            8. 229376 60.00 11115165 3035.15

            可以看到,最后結(jié)果有兩行,第一行數(shù)據(jù)顯示的是本地系統(tǒng)的發(fā)送統(tǒng)計,這里的吞吐量表示 netperf 向本地 socket 發(fā)送分組的能力。但是由于 UDP 是不可靠的傳輸協(xié)議,發(fā)送出去的分組數(shù)量不一定等于接收到的分組數(shù)量;第二行數(shù)據(jù)顯示的就是遠(yuǎn)端系統(tǒng)接收的情況,這里看到接收到的數(shù)據(jù)小于發(fā)送的數(shù)據(jù),即存在丟包的情況。遠(yuǎn)端系統(tǒng)的接收吞吐量也小于本地發(fā)送吞吐量。

            3)TCP_RR,在一個 TCP 連接中進(jìn)行多次 request 和 response 的交易過程的性能測試。

            這種方式常出現(xiàn)在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)庫與客戶端程序建立一個 TCP 連接后,就在這個連接中傳遞數(shù)據(jù)庫的多次交易過程。

            用 TCP_RR 的方式(-t TCP_RR)測試本機到 192.168.0.138 主機(-H 192.168.0.138)的網(wǎng)絡(luò)性能,時長 60 秒(-l 60),設(shè)置 request 分組大小為 64Bytes,response 分組大小1024Bytes

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netperf -t TCP_RR -H 192.168.0.138 -l 60 -- -r 64,1024
            3. MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.138 () port 0 AF_INET : first burst 0
            4. Local /Remote
            5. Socket Size Request Resp. Elapsed Trans.
            6. Send Recv Size Size Time Rate
            7. bytes Bytes bytes bytes secs. per sec
            8. 16384 87380 64 1024 60.00 9194.92
            9. 16384 87380

            這里的輸出結(jié)果有兩行,第一行數(shù)據(jù)顯示的是本地系統(tǒng)的信息,第二行數(shù)據(jù)顯示的遠(yuǎn)端系統(tǒng)的信息。Trans. Rate per sec 是平均交易率。

            通常增加 request/response 分組的大小會使得交易率下降。相對于實際的系統(tǒng),這里的交易率的計算沒有充分考慮到交易過程中的應(yīng)用程序處理時延,因此結(jié)果會高于實際情況。

            還可以設(shè)置這些參數(shù):

            客戶端選項變量說明
            -r$req,$resp設(shè)置 request 和 reponse 分組的大小;
            -s$size設(shè)置本地系統(tǒng)的 socket 發(fā)送與接收緩沖大小;
            -S$size設(shè)置遠(yuǎn)端系統(tǒng)的 socket 發(fā)送與接收緩沖大小;
            -D.對本地與遠(yuǎn)端系統(tǒng)的 socket 設(shè)置 TCP_NODELAY 選項;

            4)TCP_CRR,與 TCP_RR 的方式不同,TCP_CRR 為每次交易建立一個新的 TCP 連接。測試這種情況的網(wǎng)絡(luò)性能。

            這種方式最典型的應(yīng)用是 HTTP,每次 HTTP 交易是在一條單獨的 TCP 連接中進(jìn)行的,這個過程需要不停地建立新的 TCP 連接,并在交易結(jié)束后結(jié)束 TCP 連接,交易率會受到較大影響。

            用 TCP_CRR 的方式(-t TCP_CRR)測試本機到 192.168.0.138 主機(-H 192.168.0.138)的網(wǎng)絡(luò)性能,時長 60 秒(-l 60),設(shè)置 request 分組大小為 64Bytes,response 分組大小 1024Bytes

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netperf -t TCP_CRR -H 192.168.0.138 -l 60 -- -r 64,1024
            3. MIGRATED TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.138 () port 0 AF_INET
            4. Local /Remote
            5. Socket Size Request Resp. Elapsed Trans.
            6. Send Recv Size Size Time Rate
            7. bytes Bytes bytes bytes secs. per sec
            8. 16384 87380 64 1024 60.00 2728.00
            9. 16384 87380

            這里的輸出結(jié)果有兩行,第一行數(shù)據(jù)顯示的是本地系統(tǒng)的信息,第二行數(shù)據(jù)顯示的遠(yuǎn)端系統(tǒng)的信息。Trans. Rate per sec 是平均交易率。

            5)UDP_RR,使用 UDP 分組進(jìn)行 request 和 response 交易過程的性能測試。

            用 UDP_RR 的方式(-t UDP_RR)測試本機到 192.168.0.138 主機(-H 192.168.0.138)的網(wǎng)絡(luò)性能,時長 60 秒(-l 60),設(shè)置 request 分組大小為 64Bytes,response 分組大小1024Bytes

            1. [root@rh netperf-2.6.0]# cd /usr/netperf/bin
            2. [root@rh bin]# ./netperf -t UDP_RR -H 192.168.0.138 -l 60 -- -r 64,1024
            3. MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.138 () port 0 AF_INET : first burst 0
            4. Local /Remote
            5. Socket Size Request Resp. Elapsed Trans.
            6. Send Recv Size Size Time Rate
            7. bytes Bytes bytes bytes secs. per sec
            8. 229376 229376 64 1024 60.00 10635.03
            9. 229376 229376

            這里的輸出結(jié)果有兩行,第一行數(shù)據(jù)顯示的是本地系統(tǒng)的信息,第二行數(shù)據(jù)顯示的遠(yuǎn)端系統(tǒng)的信息。Trans. Rate per sec 是平均交易率。

            UDP_RR 方式使用 UDP 分組進(jìn)行 request/response 的交易過程。由于沒喲 TCP 連接所帶來的負(fù)擔(dān),所以交易率相對 TCP_RR 方式一般會有相應(yīng)的提升。

            但是如果出現(xiàn)了相反的結(jié)果,即交易率反而降低了,也不用太驚訝,因為這說明在網(wǎng)絡(luò)中,路由器或其他網(wǎng)絡(luò)設(shè)備對 UDP 采用了與 TCP 不同的緩沖區(qū)空間和處理技術(shù)。

            其他注意事項

            測試的時候,常常由于防火墻的原因造成網(wǎng)絡(luò)不能連接,這時候可以設(shè)置或關(guān)閉防火墻后再測試。關(guān)閉和啟動防火墻命令:

            1. service iptables stop/start;

            后記

            常用的網(wǎng)絡(luò)性能測試工具除了 iperfnetperf,還有pathloadpathrateDBStcptrace等工具。

            本文參考:《網(wǎng)絡(luò)管理必備工具軟件精解(Linux版)》,作者:李波;楊紅,人民郵電出版社。

            posted on 2016-07-06 10:59 楊粼波 閱讀(1228) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产女人aaa级久久久级| 久久精品无码专区免费 | 四虎国产精品成人免费久久| 国产亚洲美女精品久久久2020| 99久久超碰中文字幕伊人| 久久精品免费网站网| 东京热TOKYO综合久久精品| 一本久久a久久精品综合香蕉| 99久久婷婷免费国产综合精品| 久久精品极品盛宴观看| 国产91久久综合| 97精品久久天干天天天按摩| 久久久久久久91精品免费观看| 91精品无码久久久久久五月天| 久久偷看各类wc女厕嘘嘘| 91麻豆国产精品91久久久| 久久久久亚洲?V成人无码| 99久久精品午夜一区二区| 亚洲国产精品18久久久久久| 中文字幕久久亚洲一区| 国产精品成人精品久久久| 99久久免费国产精品热| 久久人人爽人人爽人人片AV不| 久久综合色老色| 久久亚洲精品国产精品婷婷| 日本久久中文字幕| 人妻中文久久久久| 久久久久亚洲精品天堂久久久久久| 青青草国产精品久久久久| 日韩欧美亚洲综合久久影院d3| 91久久精品91久久性色| 蜜臀av性久久久久蜜臀aⅴ| 亚洲色欲久久久综合网东京热| 久久婷婷午色综合夜啪| 国产精品中文久久久久久久| 亚洲国产视频久久| 国产成人无码精品久久久性色| 久久久精品人妻一区二区三区蜜桃| 伊人久久大香线蕉精品不卡| 99精品国产免费久久久久久下载 | 久久99精品久久久久久久不卡|