网络测试工具netperf

摘要:
将在客户端和服务器之间建立测试连接。

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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用的SQLAlchemy列选项程序员解决问题的60个策略下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# DllImport 方法,出现 The system cannot find the file specified 错误

最近使用 C# 调用 dll 中的 UpdateDriverForPlugAndPlayDevices() 方法去安装驱动,遇到了 “The system cannot find the file specified” 问题, 看着错误提示,是指系统没有找到指定文件,但是我检查硬盘,该文件确实存在,但是因为我测试时使用的是 Hebrew 希伯来语的系统,我...

Linux系统管理06 -----磁盘管理

一、 磁盘结构 1、 硬盘的物理结构(1~3) 盘片:硬盘有多个盘片,每个盘片2面。 磁头:每面一个磁头 2、 硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇形区存放512字节的数据 磁道:同一盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面 3、 硬盘存储容量=磁头数*磁道 (柱面) 数*每道扇区数*每扇区字节数 4、 硬盘容量:作为计算机...

ELM学习(一)

what?: 极限学习机(extreme learning machine)ELM是一种简单易用、有效的单隐层前馈神经网络SLFNs学习算法。2004年由南洋理工大学黄广斌副教授提出。传统的神经网络学习算法(如BP算法)需要人为设置大量的网络训练参数,并且很容易产生局部最优解。极限学习机只需要设置网络的隐层节点个数,在算法执行过程中不需要调整网络的输入权...

win7 64位 安装 VS2010 SP1 失败的解决方法

1. 系统环境:Windows Server 2008 R2(与Win7 x64系统相似),VS2010及常用办公、编程工具等软件2. 问题症状:无论是通过在线安装包还是ISO安装包安装,多次安装,都在安装过程中回滚,最终安装失败。3. 产生原因:系统安装整一年,常年使用,系统自动补丁等操作,使得原系统盘C盘40G空间告急,于是动手删除了部分C:Windo...

mariadb5.5.56二进制离线安装

在生产环境中一般使用发布好的二进制版本,简单概括一下安装过程:   1. 下载 地址为:https://downloads.mariadb.org/mariadb/5.5.56/   这里选择最新版本的5.5.56稳定版,进入后根据计算机位数选择,这里下载适用于64位操作系统的Linux x86_64版本   这里下载包含glibc和不包含glibc的都是...

解决安卓手机连接wifi总弹出“已登录到Wlan网络”

  安卓部分机型会在连接到wifi的时候不停地提示“已登录到Wlan网络”或者“登录到网络”,不小心点开那个提示就跳到一些广告网站了,这是由于原生安卓系统中开机后Google服务器会发送请求连接。当然,在国内,Google是无法访问的,一些手机厂家的工程师就把这个连接服务器设到了一些广告网站,让无数人心烦,下面教您彻底关闭“已登录到Wlan网络”或者“登录...