qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          網絡測試工具netperf

           Netperf是一種網絡性能的測量工具,主要針對基于TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。

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

            一、安裝

            下載( http://www.netperf.org)獲取netperf-2.5.0.tar.bz2源碼包;

            安裝

          [root@RedHat netperf-2.5.0]# tar -jxvf netperf-2.5.0.tar.bz2
          [root@RedHat netperf-2.5.0]# make
          [root@RedHat netperf-2.5.0]#make install

            二、使用方法

            首先在服務器運行

            [root@RedHat netperf-2.5.0]# netserver

            在客戶端運行

            [root@RedHat netperf-2.5.0]#netperf-H host -l testlen -t testname

            netperf的命令行參數:

            -H host :指定遠端運行netserver的server IP地址。

            -l testlen:指定測試的時間長度(秒)

            -t testname:指定進行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR

            三、網絡性能介紹

            1. TCP網絡性能

            由于TCP協議能夠提供端到端的可靠傳輸,因此被大量的網絡應用程序使用。但是,可靠性的建立是要付出代價的。TCP協議保證可靠性的措施,如建立并維護連接、控制數據有序的傳遞等都會消耗一定的網絡帶寬。

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

            1) 單個TCP連接,批量(bulk)傳輸大量數據。

            2) 單個TCP連接,client請求/server應答的交易(transaction)方式。

            3) 多個TCP連接,每個連接中一對請求/應答的交易方式。

            2. UDP網絡性能

            UDP沒有建立連接的負擔,但是UDP不能保證傳輸的可靠性,所以使用UDP的應用程序需要自行跟蹤每個發出的分組,并重發丟失的分組Netperf可以模擬兩種UDP的流量模式:

            1) 從client到server的單向批量傳輸。

            2) 請求/應答的交易方式。

            由于UDP傳輸的不可靠性,在使用netperf時要確保發送的緩沖區大小不大于接收緩沖區大小,否則數據會丟失,netperf將給出錯誤的結果。因此,對于接收到分組的統計不一定準確,需要結合發送分組的統計綜合得出結論。

           四、測試案例

            服務器端執行

          [root@RedHat netperf-2.5.0]# netserver

            在客戶端運行

          [root@RedHat netperf-2.5.0]# netperf -H 192.168.56.102 -l 60
          MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.56.102 (192.168.56.102) port 0 AF_INET
          Recv   Send    Send
          Socket Socket  Message  Elapsed
          Size   Size    Size     Time     Throughput
          bytes  bytes   bytes    secs.    10^6bits/sec
          87380  16384  16384    60.01     248.26
          [root@RedHat netperf-2.5.0]#

            從netperf的結果輸出中,我們可以知道以下的一些信息:

            1) 遠端系統(即server)使用大小為87380字節的socket接收緩沖;

            2) 本地系統(即client)使用大小為16384字節的socket發送緩沖;

            3) 向遠端系統發送的測試分組大小為16384字節;

            4) 測試經歷的時間為60秒。

            5) 吞吐量的測試結果為248.26*10^6bits/秒。

            在缺省情況下,netperf向發送的測試分組大小設置為本地系統所使用的socket發送緩沖大小。

            TCP_STREAM方式下與測試相關的局部參數如下表所示:

            -s size:設置本地系統的socket發送與接收緩沖大小;

            -S size:設置遠端系統的socket發送與接收緩沖大小;

            -m size:設置本地系統發送測試分組的大小;

            -M size:設置遠端系統接收測試分組的大小;

            -D:對本地與遠端系統的socket設置TCP_NODELAY選項I/O測試。

            其它的網絡性能測試工具,如dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop等。

          posted on 2013-08-02 11:45 順其自然EVO 閱讀(277) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 铜陵市| 巴楚县| 百色市| 吐鲁番市| 修武县| 昌吉市| 贵港市| 奉贤区| 万山特区| 梅河口市| 东兰县| 民勤县| 昌黎县| 尚志市| 高陵县| 拉孜县| 永靖县| 田林县| 嘉善县| 崇文区| 咸阳市| 鱼台县| 阳西县| 陈巴尔虎旗| 杭锦旗| 专栏| 南川市| 富锦市| 久治县| 商丘市| 高邮市| 静宁县| 额济纳旗| 乌鲁木齐市| 阳东县| 盐边县| 镇沅| 多伦县| 安阳市| 钟山县| 大关县|