netperf 网络性能测试

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。

工作原理

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试.在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果:在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,进行来回传递特殊的流量模式,以测试网络的性能

软件安装

  1. 下载安装Netperf工具
下载链接:ftp://ftp.netperf.org/netperf/
[root@xiesshavip001 ~]# wget ftp://ftp.netperf.org/netperf/netperf-2.7.0.tar.gz
  1. 安装依赖包gcc cc
[root@xiesshavip001 ~]# yum install gcc cc -y
  1. 解压安装
[[email protected] ~]# tar -zxvf netperf-2.7.0.tar.gz
[[email protected] netperf-2.7.0]# ./configure
[[email protected] netperf-2.7.0]# make && make install

命令参数介绍

命令行参数包括如下选项:

-H host :指定远端运行netserver的server IP地址。
-l testlen:指定测试的时间长度(秒)
-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
-s size	设置本地系统的socket发送与接收缓冲大小
-S size	设置远端系统的socket发送与接收缓冲大小
-m size	设置本地系统发送测试分组的大小
-M size	设置远端系统接收测试分组的大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项

netperf 网络测试

  1. TCP_STREAM Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:
[root@xiesshavip002 ~]# netserver  # 服务端启动netserver 服务
Starting netserver with host ‘IN(6)ADDR_ANY‘ port ‘12865‘ and family AF_UNSPEC
[root@xiesshavip001 ~]# netperf  -H 192.168.130.20 -l 60
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () 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     935.66
[root@xiesshavip001 ~]#
[root@xiesshavip001 ~]# netperf  -H 192.168.130.20 -l 60 -- -m 10240   # 修改发送的包的大小
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () 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  10240    60.02     937.58
[root@xiesshavip001 ~]#
  1. UDP_STREAM UDP_STREAM用来测试进行UDP批量传输时的网络性能。注意:此时测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示:
[root@xiesshavip001 ~]# netperf -t UDP_STREAM  -H 192.168.130.20 -l 10
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET
Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

212992   65507   10.01      131286      0    6874.75
212992           10.01           1              0.05

[root@xiesshavip001 ~]#
[root@xiesshavip001 ~]# netperf -t UDP_STREAM  -H 192.168.130.20 -l 10 -- -m 300000   # 超过socket的发送与接收缓冲大212992
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET
send_data: data send error: Message too long (errno 90)
netperf: send_omni: send_data failed: Message too long
[root@xiesshavip001 ~]#
  1. TCP_RR TCP_RR方式的测试对象是多次TCP request和response的交易过程
[[email protected] ~]# netperf -t TCP_RR -H 192.168.130.20
MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET : first burst 0
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec   

16384  87380  1        1       10.00    8228.63
16384  87380
[[email protected] ~]#

我们可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:

参数	           说明
-r req,resp	设置request和reponse分组的大小
-s size	    设置本地系统的socket发送与接收缓冲大小
-S size	    设置远端系统的socket发送与接收缓冲大小
-D	        对本地与远端系统的socket设置TCP_NODELAY选项
[[email protected] ~]# netperf -t TCP_RR -H 192.168.130.20 -- -r 64 64
MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET : first burst 0
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec   

16384  87380  64       64      10.00    8143.22
16384  87380
[[email protected] ~]#
  1. TCP_CRR 与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接。
[[email protected] ~]# netperf -t TCP_CRR -H 192.168.130.20
MIGRATED TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec   

16384  87380  1        1       10.00     899.38      # 数值明显比TCP_RR值小
16384  87380
[[email protected] ~]#
  1. UDP_RR UDP_RR方式使用UDP分组进行request/response的交易过程
[[email protected] ~]# netperf -t UDP_RR -H 192.168.130.20
MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.130.20 () port 0 AF_INET : first burst 0
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec   

212992 212992 1        1       10.00    8425.86
212992 212992
[[email protected] ~]#

netperf --help

[[email protected] ~]# netperf --help
netperf: invalid option -- ‘-‘

Usage: netperf [global options] -- [test options] 

Global options:
    -a send,recv      Set the local send,recv buffer alignment
    -A send,recv      Set the remote send,recv buffer alignment
    -B brandstr       Specify a string to be emitted with brief output
    -c [cpu_rate]     Report local CPU usage
    -C [cpu_rate]     Report remote CPU usage
    -d                Increase debugging output
    -D time,[units] * Display interim results at least every time interval
                      using units as the initial guess for units per second
                      A negative value for time will make heavy use of the
                      system‘s timestamping functionality
    -f G|M|K|g|m|k    Set the output units
    -F lfill[,rfill]* Pre-fill buffers with data from specified file
    -h                Display this text
    -H name|ip,fam *  Specify the target machine and/or local ip and family
    -i max,min        Specify the max and min number of iterations (15,1)
    -I lvl[,intvl]    Specify confidence level (95 or 99) (99)
                      and confidence interval in percentage (10)
    -j                Keep additional timing statistics
    -l testlen        Specify test duration (>0 secs) (<0 bytes|trans)
    -L name|ip,fam *  Specify the local ip|name and address family
    -o send,recv      Set the local send,recv buffer offsets
    -O send,recv      Set the remote send,recv buffer offset
    -n numcpu         Set the number of processors for CPU util
    -N                Establish no control connection, do ‘send‘ side only
    -p port,lport*    Specify netserver port number and/or local port
    -P 0|1            Don‘t/Do display test headers
    -r                Allow confidence to be hit on result only
    -s seconds        Wait seconds between test setup and test start
    -S                Set SO_KEEPALIVE on the data connection
    -t testname       Specify test to perform
    -T lcpu,rcpu      Request netperf/netserver be bound to local/remote cpu
    -v verbosity      Specify the verbosity level
    -W send,recv      Set the number of send,recv buffers
    -v level          Set the verbosity level (default 1, min 0)
    -V                Display the netperf version and exit
    -y local,remote   Set the socket priority
    -Y local,remote   Set the IP_TOS. Use hexadecimal.
    -Z passphrase     Set and pass to netserver a passphrase

For those options taking two parms, at least one must be specified;
specifying one value without a comma will set both parms to that
value, specifying a value with a leading comma will set just the second
parm, a value with a trailing comma will set just the first. To set
each parm to unique values, specify both and separate them with a
comma.

* For these options taking two parms, specifying one value with no comma
will only set the first parms and will leave the second at the default
value. To set the second value it must be preceded with a comma or be a
comma-separated pair. This is to retain previous netperf behaviour.
[[email protected] ~]#
时间: 2024-10-22 04:23:45

netperf 网络性能测试的相关文章

iperf/netperf网络性能测试工具、Wireshark网络包分析工具

iperf   http://www.linuxidc.com/Linux/2014-05/101160.htm netperf  http://www.linuxidc.com/Linux/2013-07/87975.htm Wireshark  http://www.linuxidc.com/Linux/2013-05/84174.htm

TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具

在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多. 除了netperf以外.       还有很多其它的网络性能测试工具.       如db, iperf, ptrte, nettet, netlogger, tcptrce, ntop等.这些工具有其各自的特色和不同的侧重点,我们可以根据具体的应用环境,有选择的使用它们,这样就可以使这些工具发挥出最大的功效.虽然都是开 放源代码的软件.       但是这些工具的功能与商业的网络测试工具

网络性能测试工具minsmb功能特点-如何加载、发送PCAP数据包

网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最大连接数等诸多参数指标. 与软件Iperf,netperf, dpdk trafficgen相比较,MiniSMB属于专业硬件网络发包测试仪, 具备精准测试速率,高吞吐率,可模拟千万级连接数等特点. minismb网络数据性能测试仪最新版本为3.3.0版. 本文主要介绍minismb网络测试仪的pcap数据包加载

【转载】 网络性能测试工具

http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/ Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性.Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能. Iperf有两种版本,windows版和linux版本.linux版本更新快,最新版本为iperf

网络性能测试工具iperf详细使用图文教程(转)

Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性.Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能. Iperf有两种版本,windows版和linux版本.linux版本更新快,最新版本为iperf 3.0,下载地址为http://code.google.com/p/iperf/downloads/list ,windows版本官方

网络性能测试工具iperf详解

网络性能测试工具iperf详细使用图文教程 Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性.Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能. Iperf有两种版本,windows版和linux版本.linux版本更新快,最新版本为iperf 3.0,下载地址为http://code.google.com/p/iperf/downl

微软Azure云主机及blob存储的网络性能测试

  微软Azure云主机及blob存储的网络性能测试 1. 测试目的 本次测试的目的在于对微软Azure的云主机.blob存储的网络性能以及DNS解析的稳定性做相关测试,评估其是否能够满足我们业务的需求. 2. 测试项目 ? 微软Azure云主机的网络性能 ? 微软blob存储的网络性能 ? DNS解析稳定性测试 3. 测试方法 本次测试使用多种第三方分布式工具作为访问源及评测工具,比照测试结果数据,以综合评估微软Azure的网络性能及稳定性. 4. 网络性能测试 4.1. 网络带宽测试 我们通

SylixOS网络性能测试

1.应用场景 在进行一些研究和开发时经常需要对网络性能进行测试,iperf是一款非常出色的网络性能测试工具,它拥有多个参数,可以测量TCP和UDP的带宽,延时抖动以及丢包率.SylixOS支持iperf,可以通过iperf进行网络性能测试. 2.测试方法 2.1 Windows版本iperf安装 windows版的iperf安装,解压iperf3到相应目录,可以直接运行,如图 3.1所示. 图 3.1 windows版iperf目录 2.2 SylixOS版本iperf安装 SylixOS版的i

网络性能测试工具Iperf介绍

[概要]Iperf是一款网络性能测试工具,可以方便的用它进行SDN网络带宽和网络质量的测试,Iperf支持协议.定时.缓冲区等参数的配置调整,报告TCP/UDP最大带宽.延迟抖动.数据包丢失等统计信息. 1 Iperf安装 Iperf安装方法有多种,可以下载源码编译安装,也可以直接使用编译好的二进制版本,在ubuntu下安装使用iperf尤为简单,apt-get install iperf 即可,值得一提的是Mininet自带Iperf,在SDN网络上测试比较便捷. 2 工作原理 使用Iperf