深度分析网络性能测试工具之Netperf

今天收到一个任务,如何在linux环境下测试网络传输性能?netperf是个不错的网络性能测试工具。
Netperf 是一种网络性能的测量工具,主要针对基于 TCP 或 UDP 的传输。Netperf 根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf 测试结果所反映的是两个系统之间发送和接受数据的速度和效率。
Netperf 工具是基于 C/S模式的。 server 端是 netserver,用来侦听来自 client端的连接, client 端是 netperf,用来向 server 发起网络测试。在 client 与 server 之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client 与 server 之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。
在测试由于网卡或交换机等网络变化造成“丢包”现象的测试中,我们使用Netperf 的 UDP传输来近似统计丢包数目,进而评估各种情况对于应用的影响。由于 TCP是可靠连接,对于丢包会有重传机制,无法用来评估丢包程度;而 UDP则为非可靠连接,恰好适合于测试。
原理介绍完了如何安装呢?
我本地使用的版本是netperf-2.5.0.tar.gz, 从 http://www.netperf.org/下载。上传到linux服务上使用如下命令编译安装:

    1. [root@SERVER1 ~]#tar -xzvf netperf-2.5.0.tar.gz
    2. [root@SERVER1 ~]#cd netperf-2.5.0
    1. [root@SERVER1 ~]#./configure
    2. [root@SERVER1 ~]#make
  1. [root@SERVER1 ~]#make install

安装后可以开测了
第一步:在server1上开启server服务,如下:

  1. [root@SERVER1 ~]# netserver -p 11111  //-p 后为监听的端口号
  2. Starting netserver with host 'IN(6)ADDR_ANY' port '11111' and family AF_UNSPEC

第二步:在客户端server2上使用如下命令测试:

    1. [root@SERVER2 ~]# netperf -t UDP_STREAM -p 11111 -H 1.1.1.10 -l 200
    2. MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 1.1.1.10 (1.1.1.10) port 0 AF_INET
    1. Socket  Message  Elapsed      Messages
    2. Size    Size     Time         Okay Errors   Throughput
    1. bytes   bytes    secs            #      #   10^6bits/sec
  1. 262144   65507    200.00       372207       0     961.55
  2. 262144            200.00       368069             961.55

-t后跟的是测试类型一种为UDP,一种为TCP,这里我使用UDP进行测试。
-p为对端监听的端口就是上面server1开启的端口。
-H为对端IP,也就是server1的IP.
-l是测试时间,我这里测试200s。
第三步:可以通过如下公式试算网络丢包时间:
丢包时间=(Send Packet Num– Receive Packet Num)*Total Time/Send Packet Num
按照我上面的测试结果来计算如下:
丢包时间=(372207– 368069)*200/372207=2.22s

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  2   博主  1

    • avatar 匿名 5

      牛逼靖哥哥

      • avatar wuxinxinggg 3

        呵呵。。。这个我在学校的时候也用过。。。也是用来分析数据。。。不是很熟。。。

          • 激劉勇靖 激劉勇靖 Admin

            @wuxinxinggg 这个还不错挺好用的,对于用服务器来测试网络性能这个工具还是不错的,可以用UDP和TCP两种协议来测试性能。