简介

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

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

Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。

netperf-2.7.0百度网盘下载地址(赠送简易脚本,可自行改编)
链接:https://pan.baidu.com/s/1TRaGeVufhiqYy6uftrXdHg?pwd=uap7
提取码:uap7

测试方法

1.准备两台测试机A(sut)和B(client),分别解压测试工具包netperf.tar.gz,并切换到目录netperf

unzip netperf-2.7.0.zip
cd netperf-2.7.0/

2.arm配置:./configure -build=alpha
x86、龙芯配置:./configure

3.编译:make

4.安装:make install

5.在机器A上执行netserver命令启动监听服务

在机器B上执行如下命令:

netperf -H sut_ip -t TCP_STREAM -l 60 > netperf.txt
netperf -H sut_ip -t UDP_STREAM -l 60 >> netperf.txt
netperf -H sut_ip -t TCP_RR -l 60 >> netperf.txt
netperf -H sut_ip -t UDP_RR -l 60 >> netperf.txt
netperf -H sut_ip -t TCP_CRR -l 60 >> netperf.txt

6.打开netperf.txt查看结果

cat netperf.txt

常用的命令行参数解析

-H:指定远端运行netserver的server IP地址;
-l: 指定测试的时间长度(秒);
-t: 指定测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR。

评判标准:
成功启动netserver服务,TCP_STREAM和UDP_STREAM的Throughput不能低于传输速率的90%,丢包率不能大于1%,Trans.Rate越大越好。

结果分析


1. TCP STREAM
1) 远端系统(即server)使用大小为87380字节的socket接收缓冲
2) 本地系统(即client)使用大小为16384字节的socket发送缓冲
3) 向远端系统发送的测试分组大小为16384字节
4) 测试经历的时间为60.03秒
5) 吞吐量的测试结果为941.47Mbits/秒

2. UDP_STREAM
UDP_STREAM方式的结果中有两行测试数据,第一行显示的是本地系统的发送统计,这里的吞吐量表示netperf向本地socket发送分组的能力。第二行显示的就是远端系统接收的情况。

3. TCP_RR
TCP_RR方式的测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中,这种模式常常出现在数据库应用中。数据库的client程序与server程序建立一个TCP连接以后,就在这个连接中传送数据库的多次交易过程。
Netperf输出的结果也是由两行组成。第一行显示本地系统的情况,第二行显示的是远端系统的信息。平均的交易率(transaction rate)为3094.64次/秒。注意到这里每次交易中的request和response分组的大小都为1个字节,不具有很大的实际意义。用户可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:
参数说明:
-r req,resp 设置request和reponse分组的大小
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项

4. UDP_RR
UDP_RR方式使用UDP分组进行request/response的交易过程。没有TCP连接所带来的负担。
可能会受到网络中路由器或其它的网络设备对UDP采用了与TCP不同的缓冲区空间和处理技术影响,正常情况下会高于TCP_RR的值。本次测试结果为3136.53次/秒。

5. TCP_CRR
与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。

这里交易率明显的降低了,只有1422.23次/秒。

网络传输性能netperf测试方法和下载相关推荐

  1. 基本系统调用性能lmbench测试方法和下载

    简介 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽. Lmbench旨在使系统开发者深入了解关键操作 ...

  2. 光通信 dqpsk matlab,高速光通信中多进制调制格式传输性能研究

    高速光通信中多进制调制格式传输性能研究 如今,随着互联网业务的飞速增长和各种新业务的不断出现,使得光通信网络的传输速率持续增加.对于单信道40Gbps及其以上的高速光传输系统,其核心路由的接口速率将超 ...

  3. http拨测是什么意思_网络性能拨测-网络传输速度体验检测系统有哪些指标?

    原标题:网络性能拨测-网络传输速度体验检测系统有哪些指标? 网络性能拨测是对网络情况检测中用到的,用一些特定的网络数据指标来反映不同时间和地区用户使用网络的情况,可以协助网络提供商更好地了解用户的使用 ...

  4. ensp大型网络环境设计与实现_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现三...

    1. 说明 在之前的<<Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计>>和<<mongodb内核源码设计实现.性能优化.最佳运维系列-tran ...

  5. 由STGW下载慢问题引发的网络传输学习之旅

    导语:本文分享了笔者现网遇到的一个文件下载慢的问题.最开始尝试过很多办法,包括域名解析,网络链路分析,AB环境测试,网络抓包等,但依然找不到原因.然后利用网络命令和报文得到的蛛丝马迹,结合内核网络协议 ...

  6. linux内核设计与实现 epub_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现四...

    1. 说明 本文分析网络传输层模块中的最后一个子模块:service_executor服务运行子模块,即线程模型子模块.在阅读该文章前,请提前阅读下<<Mongodb网络传输处理源码实现及 ...

  7. Linux实用操作:小技巧(快捷键)、软件安装、systemctl、软连接、日期时区、IP地址、主机名、网络传输、端口、进程管理、主机状态、环境变量、上传、下载、压缩和解压

    版本说明 当前版本号[20230415]. 版本 修改说明 20230415 初版 本课程的笔记已经更新完毕,各位可以通过点击黑马程序员2023年新版Linux零基础快速入门到精通>学习笔记总目 ...

  8. Linux之网络性能测试工具netperf实践

    一.netperf简介   Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data ...

  9. 网络性能测试工具netperf

    源地址:网络性能测试工具netperf | 软件定义网络SDN 1 网络性能测试概述 在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多,或者即使 ...

  10. iOS 网络传输数据安全以及常用的加密算法使用

    我们常说的数据安全:主要分为两种,数据本身的安全和数据防护安全. 数据本身的安全包括数据保密,数据完整性验证,数据双向认证等. 数据防护安全包括磁盘阵列,数据备份,异地容灾等. App安全问题主要包括 ...

最新文章

  1. SBB:石油污染土壤微生物群落构建与生物多样性研究(一作解读)
  2. Java面试题:缓存三大问题及解决方案!
  3. 计算一个全息图片的两个设想
  4. 浅析网站站内优化重要因素都有哪些?
  5. Shell排序的原理与集体实现
  6. Failed to execute goal on project xxx: Could not resolve dependencies for project com
  7. 能在任意一种框架中复用的组件,太牛了!
  8. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
  9. 第三届蓝桥杯决赛真题---数量周期
  10. Centos7安装MariaDB10.28稳定版
  11. mysql游标进阶_MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!
  12. 神经网络模型中class的forward函数何时调用_总结深度学习PyTorch神经网络箱使用...
  13. python爬取网易云音乐_爬取网易云音乐评论(一)——用python执行JS脚本
  14. [DB2]DB2中的数值类型
  15. 关于spring+springMVC+myBatis的一些基础配置以及整合
  16. 禁止谷歌浏览器对form元素添加缓存默认值
  17. python_四元数/旋转矩阵/欧拉角之间的相互变换(简单易用版)
  18. 极简算法史---序 前言
  19. windows 控制台cmd乱码的解决办法
  20. 三种梯度下降的方式:批量梯度下降、小批量梯度下降、随机梯度下降

热门文章

  1. 从武汉远程医疗方案看,5G战“疫”是噱头还是福音?
  2. 使用jTopo给Html5 Canva中绘制的元素添加鼠标事件_html5教程技巧
  3. 图像质量评价函数SSIM介绍
  4. 软件工程课程课后大作业
  5. docker常用命令
  6. K-近邻算法学习总结
  7. win10 x64+VS2017社区版+OpenCV3.2.0安装
  8. 基于JAVA的旅游企业财务管理系统源码【包调试】
  9. Intellij idea破解2017
  10. 华为防火墙easy-ip配置