发布时间:2010-06-28 18:07 来源: 作者: 核高基测试部 陈磊

1.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/DownloadNetperf.html测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux 会给你的读写的内容进行缓存。会使数值非常不真实。

2.安装与使用

2.1 安装

netperf 的安装对于我们的系统而言,非常简单,直接下载压缩包并安装即可,安装后路径可按具体的测试目录文件而定。对本系统来说,安装在:/tmp/usb 下。其安装过程为:

(1). 将存有netperf‐2.4.4 工具的优盘加载:

#mount –o auto /dev/sdb1 /mnt/usb

(2) . 将netperf‐2.4.4 压缩包解压到/tmp/usb 下:

#tar –zxvf netperf‐2.4.4.tar.gz ‐C /tmp/usb/

(3). 将解压后的文件进行配置:

#./configure

(4). 进行文件的制作:

# make

(5). 进行网络终端连接:

#netserver

到此netperf‐2.4.4 文件已经安装成功,可以进行网络功能测试。

3.常用参数分析

1) Netperf 的常用参数:

在linux 系统中,可以直接运行可执行程序来启动netserver,也可以让inetd 或xinetd 来自动启动netserver。当netserver 在server 端启动以后,就可以在client 端运行netperf 来测试网络的性能。netperf通过命令行参数来控制测试的类型和具体的测试选项。根据作用范围的不同,netperf 的命令行参数可以分为两大类:全局命令行参数、测试相关的局部参数,两者之间使用‐‐分隔:netperf [global options]‐‐ [test‐specific options]

这里我们只解释那些常用的命令行参数,其它的参数读者可以查询netperf 的man 手册。

‐H host :指定远端运行netserver 的server IP 地址。

‐l testlen:指定测试的时间长度(秒)

‐t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,

UDP_RR,在下文中分别对它们说明。

在后面的测试中,netserver 运行在192.168.0.28,server 与client 通过局域网连接(100M Hub)。

1) TCP 网络性能

由于TCP 协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP 协议保证可靠性的措施,如建立并维护连接、控制数据有序的传递等都会消耗一定的网络带宽。

netperf 可以模拟三种不同的TCP 流量模式:单个TCP 连接,批量(bulk)传输大量数据

单个TCP 连接,client 请求/server 应答的交易(transaction)方式

多个TCP 连接,每个连接中一对请求/应答的交易方式

2) UDP 网络性能

UDP 没有建立连接的负担,但是UDP 不能保证传输的可靠性,所以使用UDP 的应用程序需要自行跟踪每个发出的分组,并重发丢失的分组。

netperf 可以模拟两种UDP 的流量模式:从client 到server 的单向批量传输

请求/应答的交易方式

由于UDP 传输的不可靠性,在使用netperf 时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf 将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。

3.

Netperf 工作原理

netperf 是围绕着基本的客户‐服务器模式设计的。主要有两个可执行部分:客户端程序netperf 和服务器端程序netserver.。netserver 可单独在一台机器上运行,也可与客户端程序netperf 在同一机器上运行。测试时,netperf 首先建立和远程系统的控制连接。该操作通过调用establish‐control(host‐name,test‐port)为测试打开一个使用相应协议的端口.然后,根据测试者指定的测试类型,调用相应的函数(如测试TCP 流性能,则调用send‐tcp‐stream(hostname)函数)进行处理,并等待测试结果,当测试完成时显示测试结果,关闭连接,退出该次测试。

服务器端运行的netserver 是一个系统守护程序,它在一个指定的监听端口循环等待测试请求,当有测试请求时,进行初始化,读取测试的类型,调用相应的模块进行处理,并读取发送方和接收方的套接字和消息大小以及此次测试所用的时间,计算出网络的吞吐量返回计算结果,然后继续等待下一轮测试。

linux netperf,Netperf 的使用与介绍相关推荐

  1. Linux 下UVCamp;V4L2技术简单介绍(二)

    通过前文Linux 下UVC&V4L2技术简单介绍(一)我们了解了UVC和V4L2的简单知识. 这里是USB设备的文档描写叙述:http://www.usb.org/developers/do ...

  2. Linux操作系统下DHCP服务器配置方法介绍

    Linux操作系统下DHCP服务器配置方法介绍 1.安装dhcp软件包 #rpm –ivh dhcp-3.0.1-12_EL.i386.rpm 2.配置文件dhcpd.conf 由于dhcpd.con ...

  3. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  4. linux下文件描述符的介绍

    linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...

  5. Linux shell脚本基础学习详细介绍(完整版)

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  6. linux中各目录及详细介绍

    linux中各目录及详细介绍 一.Linux文件系统的层次结构 在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构,如图: 二.目录 1.目录的定义 目录相当 ...

  7. Linux内存管理之基本概念介绍(一)

    Linux内存管理之基本概念介绍(一) Linux内存管理之物理内存管理(二) Linux内存管理之内存管理单元(MMU)(三) Linux内存管理之分配掩码(四) Linux内存管理之伙伴系统(五) ...

  8. Linux技术在桌面领域的应用,Linux桌面领域7大趋势介绍

    Linux桌面领域7大趋势介绍.如今,移动互联高速发展,桌面应用环境似乎已成昔日技术,并被移动设备逐步所取代.不过,显对于Linux桌面开发人员是一种并未知晓的状态.在桌面领域本应过时的一个年代,Li ...

  9. linux中的chmod命令详细介绍、使用及实例

    linux中的chmod命令详细介绍.使用及实例 chmod命令 chmod用于改变 linux 系统文件或目录的访问权限,可以用它控制文件或目录的访问权限.该命令有两种用法:一种是包含字母的文字设定 ...

  10. linux内核教学的全套视频,中科大老师全程讲解Linux内核分析视频教程《附加介绍+总结》共23节课...

    中科大老师全程讲解Linux内核分析视频教程<附加介绍+总结>共23节课" F4 u& {+ T) p5 G' W  ]; o% m 2 q: ]. j8 I; q' D ...

最新文章

  1. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息
  2. matplotlib安装成功但import失败_统信UOS安装失败,deepinv20.1国产操作系统安装成功...
  3. 为什么说21世纪是一场ABC的革命?
  4. 通过VB结构数组输入数据VC编写DLL
  5. 中国科学院计算机专业职称,2018年春季工程技术系列专业技术资格职称评审结束...
  6. c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
  7. 荣耀双十一开门红:斩获多品类销量及销售额冠军
  8. css3:border-radius圆角边框详解 (变圆 图片)
  9. Nvidia League Player:来呀比到天荒地老
  10. 微服务面试题及详细答案
  11. 软考中级软件设计师---下午题
  12. 学Java开发需要考什么证书?
  13. lol计算机丢失msvcp140,玩英雄联盟提示电脑缺少msvcp140.dll怎么办
  14. Android Studio插入图片
  15. 微信小程序开发需要的相关技术
  16. 一个计算机游戏机,我想入手一台游戏主机,ps、xbox、任天堂相比,哪个好?
  17. 华为认证有什么地方可以学习考取?
  18. 【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
  19. git本地仓库关联远程仓库的两种方式
  20. iOS开发底层之KVO探索下 -18

热门文章

  1. C语言运算符和结合性
  2. mysql5.7绿色版安装与卸载教程
  3. Java 验证码识别(1)使用 Tess4J 进行 OCR 识别
  4. 学习用PySide写界面
  5. 全国计算机城市排名,这五大城市教育资源全国领先,各城市优质高校排行榜一定要收藏!...
  6. FDDB人脸检测测试集使用方法
  7. 缺陷管理工具(jira,禅道)
  8. 四旋翼飞行器——飞行原理
  9. 通俗易懂的方式讲解最大流和最小割问题
  10. windows datacenter 2012 R2 密钥