[转帖]网络传输性能netperf测试方法和下载
简介
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/
- 1
- 2
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
- 1
- 2
- 3
- 4
- 5
6.打开netperf.txt查看结果
cat netperf.txt
- 1
常用的命令行参数解析
-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测试方法和下载的更多相关文章
- web性能优化-网络传输性能优化
浏览器工作原理:https://www.cnblogs.com/thonrt/p/10008220.html 浏览器渲染原理: https://www.cnblogs.com/thonrt/p/100 ...
- cpu主频对网络传输性能的影响
数据包长度是:2KB iperf的测试结果:3.2GHz的cpu能上40Gb/s, 2.1GHz的cpu只能到28Gb/s.
- [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解 http://www.52im.net/thread-1309-1-1.html 本文来自腾讯资深研发工程师罗成的技术分享, ...
- Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案
本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help QoS出现的背景: 而当网络发生拥塞的时候,所有的数据流都有 ...
- App安全之网络传输安全
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...
- 解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API).TCP/IP传输层有两个并列的协议:TCP和UDP.其中TCP(transport contro ...
- APP安全--网络传输安全 AES/RSA/ECC/MD5/SHA
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...
- UNIX网络编程——解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API).TCP/IP传输层有两个并列的协议:TCP和UDP.其中TCP(transport contro ...
- 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造
在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...
- 蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...
随机推荐
- Mysql开发实践:error while loading shared libraries: libaio解决方案
摘要:Mysql出现问题:error while loading shared libraries: libaio解决方案. 本文分享自华为云社区<Mysql出现问题:error while l ...
- vue2升级vue3:vue3真的需要vuex或者Pinia吗?hooks全有了
在写 <vue2升级vue3:TypeScript下vuex-module-decorators/vuex-class to vuex4.x>,建议新项目使用 Pinia,但是我的项目部分 ...
- HIVE报错 need to specify partition columns because the destination table is partitioned
解决 分区需要指定分区 insert into table XXX partition(分区='')
- 苹果商店上架流程_App上架苹果流程及注意事项
苹果商店上架流程_App上架苹果流程及注意事项 APP上架是:APP应用从提交审核到上架整个过程.目的是让应用展示在APP Store上获取流量及用户 一.IOS上架整个流程 1.申请开发者账号 2. ...
- MySQL 事务回滚。在执行删除、更新等操作时,防止误操作
SQL Server 事务执行.回滚 MySQL 事务回滚.在执行删除.更新等操作时,防止误操作 SELECT * FROM TABLE_NAME I WHERE I.TRANS_NO='P-2019 ...
- 背景 | 基于 Transformers 的编码器-解码器模型
!pip install transformers==4.2.1 !pip install sentencepiece==0.1.95 Vaswani 等人在其名作 Attention is all ...
- 浅谈splice( )与slice( )
1.splice( ) 概念:splice( )用于修改原始数组,它可以删除.插入.替换数组的元素,并返回被删除的元素组成的新数组. 语法:splice(start,deleteCount,item1 ...
- RPC 框架性能测试,注意这 8 点就够了
某天,二狗子写了一个 RPC 框架后,简单测了一下性能,发现超出 grpc 一大截.二狗子一高兴,忍不住找同事吹了一波.结果,同事亲测后对二狗子说框架性能也就这样.二狗子表示不服,跟同事一番唇枪舌剑后 ...
- three.js 消防模拟火焰烟雾效果
ParticleEngine.js实现烟雾效果 参考网址:http://stemkoski.github.io/Three.js/Particle-Engine.html ParticleEngine ...
- JSP | IDEA 配置 JSP 模板
新建 jsp 文件时的模板 在第 5 步输入下面模板代码: <%-- Created by IntelliJ IDEA. User: ${USER} Date: ${DATE} Time: ${ ...