Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

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

1          安装

下载( 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

2          使用方法

首先在服务器运行

[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

3          网络性能介绍

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将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。

4          测试案例

服务器端执行

[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等。

网络测试工具netperf的更多相关文章

  1. 网络测试工具netperf(转)

    http://pangyi.github.io/blog/20141210/wang-luo-ce-shi-gong-ju-netperf/ 网络测试工具netperf 2014年12月10日 一般我 ...

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

    在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多. 除了netperf以外.       还有很多其它的网络性能测试工具.       如db, ...

  3. 网络测试工具--Iperf、Netperf 、MZ

    网络性能测量的五项指标 可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughpu ...

  4. IPerf——网络测试工具介绍与源码解析(4)

    上篇随笔讲到了TCP模式下的客户端,接下来会讲一下TCP模式普通场景下的服务端,说普通场景则是暂时不考虑双向测试的可能,毕竟了解一项东西还是先从简单的情况下入手会快些. 对于服务端,并不是我们认为的直 ...

  5. netperf 网络测试工具

    软件介绍: netperf是惠普公司开源的一款针对网络性能的测试工具,主要基于TCP或UDP的传输.根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(req ...

  6. linux下性能测试工具netperf使用

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

  7. QNET,一款给力的APP弱网络测试工具

    目前在测试移动设备上进行弱网络专项测试的方案主要有两种: 通过Android设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET-Simulator等.基本思路是在PC上装一个F ...

  8. 复刻smartbits的国产网络测试工具minismb-使用burst模式

    复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...

  9. 复刻smartbits的国产网络测试工具minismb-如何添加数据流

    复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...

随机推荐

  1. USB 管道 && 端点

    管道是对主机和usb设备间通信流的抽象.      管道和usb设备中的端点一一对应,一个usb设备含有多少个端点,其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管道中数据的传输类型.  ...

  2. ExtJs在vs中的应用

    目标: 认识EXTJS(自己google) 在vs中创建EXTJS的编程环境 通过一个简单的例子了解EXTJS编程过程 内容: 个人理解EXTJS是一个基于ajax富客户端应用程序框架, 1,创建vs ...

  3. EF中的自动追踪与代理

    自动追踪 EF框架会自动追踪实体的变化(通过比较实体的当前值与原始值). 默认情况下,以下方法会自动触发实体变化的追踪 DbSet.Find DbSet.Local DbSet.Remove DbSe ...

  4. MongoVUE查询备忘

    用了一段时间的MongoVUE,把一些在MongoVUE中常用的查询记录一下,以便查阅.1.and查询    查询date等于2016-01-08,并且page_url等于shouye.html   ...

  5. .NET MVC通过反射获取数据修改历史记录,并插入数据表中

    本文属于原创,转载时请标明出处! 折磨了我一个晚上的问题,奈何对物理的反射印象太深了,整天去想着物理的反射.折射怎么解.感谢少将哥哥给我的指点,经过一个晚上对反射的恶补,最终搞定了.纪念一下. 1.核 ...

  6. Playground

    题意 :求被两点分割的凸包面积的较小值    题意已经给出顺时针啦 就是求以某一个点 和其他所有相邻点组成三角形的面积,然后sum存和求两点的时候就求出那两点的之间所有三角形的和再减掉0点和那两点的面 ...

  7. POJ3641 Pseudoprime numbers(快速幂+素数判断)

    POJ3641 Pseudoprime numbers p是Pseudoprime numbers的条件: p是合数,(p^a)%p=a;所以首先要进行素数判断,再快速幂. 此题是大白P122 Car ...

  8. java基础学习----String

    旨在从内存方面看String类的知识点: 1.为何不能被继承(final类) 2.字符拼接时,String类的内存分配问题. 3.String的intern()方法 关于String类经常出现的面试题 ...

  9. Session生命周期讨论

    文章级别:Java初级    预备技能点:JSP内置对象, 监听器, 序列化           在程序开发的时候, request session appplication内置对象, 是用的比较多的 ...

  10. 后台获取HTMLTABLE的innerHtml

       c#后台动态创建了htmltable,取其innerHtml时,会报错,因为,htmltable控件不支持该属性,要获取其innerHtml使用如下方法 HtmlTable tb=new Htm ...