[转帖]网络传输性能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 ...
随机推荐
- curl使用小记(三)——获取远端数据到内存缓冲区
目录 1. 概述 2. 实现 3. 参考 1. 概述 我在博文<curl使用小记(二)--远程下载一张图片>中介绍了如何通过Curl获取远端的文件.不过在那个例子中,将获取远端数据与写入数 ...
- MySQL进阶篇:详解索引概述
2.1 MySQL进阶篇:第二章_二.一_索引概述 2.1.1 介绍 索引(index)是帮助MySQL高效获取数据的数据结构(有序).在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些 ...
- 一文带你解读Volcano架构设计与原理
摘要:Volcano主要是基于Kubernetes做的一个批处理系统,希望上层的HPC.中间层大数据的应用以及最下面一层AI能够在统一Kubernetes上面运行的更高效. Volcano产生的背景 ...
- 在距离distribution 证书过期一个月(或被手动revoke了)的时候会受到apple的邮件
编辑 虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是company(公司)类型或个人类型的,只要你的每年99$的开发者membership没有过期,就不会对已 ...
- 火山引擎ByteHouse:云原生数据库如何提升MySQL兼容性?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当前各类软件层出不穷,单独某一款软件往往难以满足企业应用需求,一般都需要与各类软件组合使用,这时软件生态兼容性就显 ...
- 火山引擎 DataTester 揭秘:字节如何用 A/B 测试,解决增长问题的?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 上线六年,字节跳动的短视频产品--抖音已成为许多人记录美好生活的平台.除了抖音,字节跳动旗下还同时运营着数十款 ...
- Solon2 开发之IoC,一、注入或手动获取配置
约定 resources/app.yml( 或 app.properties ) #为应用配置文件 配置样例 track: name: xxx url: http://a.a.a db1: jdbcU ...
- 远程桌面CredSSP 加密数据库修正
如图所示: 远程桌面连接,出现身份验证错误,要求的函数不受支持,这可能是由于 CredSSP 加密数据库修正
- js将页面上取得的元素坐标转换为电脑屏幕坐标
代码: <!DOCTYPE html> <html> <head> <title>计算屏幕坐标</title> <meta chars ...
- 【调试】perf和火焰图
简介 perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu.进程id.运行栈等),利用这 ...