介绍

Iperf3 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失.对于每个测试,它都会报告带宽,丢包和其他参数,可在Windows、Mac OS X、Linux、FreeBSD等各种平台使用,是一个简单又实用的小工具。

Iperf3也是C/S(客户端/服务器端)架构模式,在使用iperf3测试时,要同时在server端与client端都各执行一个程序,让它们互相传送报文进行测试。

iperf3.0之前的版本只能用来测试千兆速率,但是万兆网络强烈建议使用iperf3测试。

下载

iperf下载链接

安装

在CentOS 7上使用下列命令即可安装:
# yum install iperf3在ubuntu 上使用下列命令安装:# apt-get install iperf3

客户端和服务端共有的参数

服务端独有参数

客户端独有参数

配置

1. 网卡默认的MTU是1500字节,对于万兆来说有点小了,相同的数据量,每包1500,头尾会消耗一些带宽,所以可以将MTU设置大点,为9000

ifconfig ethx MTU 9000。

2.设置socket缓冲区大小:

可以先看下默认配置,16777216是配过的值,默认值比这个小。

cat /proc/sys/net/core/wmem_default
16777216

配置:

echo 16777216 > echo 16777216 > /proc/sys/net/core/wmem_default

echo 16777216 > echo 16777216 > /proc/sys/net/core/rmem_default

测试

一、实验环境:

在实际测试中我的服务器有万兆网卡,IP如下所示:

Host177:100.192.168.177

Host178:100.192.168.178

Host179:100.192.168.179

Host186:100.192.168.186

二、测试过程

  在这次测试中主要进行tcp与udp的对比测试,在测试前先说明一下在iperf3中有几个参数在tcp环境与udp环境中的区别,也就是在测试中需要对此参数要给定内容,避免iperf工具使用其默认的值,主要几项如下:

如图,参数若不指定-b带宽值会造成极大的区别,在测试环境中发现 -l 默认就使用128数值。

接下来首先以Host179为服务器端(服务器端启动参数是没有区别的):

以Host178为客户端进行tcp的测试(暂时不指定-l参数即缓冲区大小):

因测试环境有万兆网卡,于是我在这里指定了带宽-b 为万兆(后面还会进行千兆测试,会出现一个较为奇怪的现象),传输内容大小为100G。

再进行udp测试(暂时不指定-l参数即缓冲区大小):

进行udp测试时候,仅是多了一个参数-u即可。

下面进行千兆的测试,如下:

将-b后面跟着的值调小,这里udp的测试同样进行此操作,这里就不列出图片了,接下来我们关注一下测试结果。

三、测试结果

经测试后,可观察客户端下方的打印结果,如下:

tcp下以万兆带宽测试结果:

ucp下以万兆带宽测试结果:

tcp下以千兆带宽测试结果:

ucp下以千兆带宽测试结果:

  通过观察此类结果可以清楚的发现在设定 –b 1000M (千兆)的时候,tcp和udp的传输100G文件所需时间相差不是很多,但当设定–b 10000M (万兆)的时候,两者相差的还是比较明显的,这也是前面提出的“奇怪的现象”。给人的感觉就是udp没有发挥万兆网卡的全部速率,在图中也有显示丢包率为51%。

  通过网上的资料查询得知,udp丢包率高可能为缓冲区buffer有限制导致的,因此我于是进行了如下测试:

将udp缓冲区buffer调高,执行下面命令:

CentOS 7中默认buffer大小为212992,我在后面增加了2个0,约为放大100倍,这两条命令在服务器端和客户端都执行,然后下面在执行udp测试命令:

得出结果为:

可以看出丢包率得到了明显的改善,但识别出的带宽仍为6500M左右,离万兆还有一定的距离。

四、结论

经过上网查询学习得知,在带宽测试中通常采取udp模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽(万兆)作为数据发送速率进行测试,这样可以大体得出实际带宽的极限值,在测试环境中的带宽为6500左右,这也同样解释了上文提到的奇怪现象,并且在做实验中一定要注意测试命令的默认参数值,比如在本次测试中的tcp与udp测试的-b和-l两个参数,在使用默认参数的时候还是有着巨大的区别。

五、扩展

dperf 100G网络测试​​​​​​​

Linux:网络测试工具之 iperf3相关推荐

  1. linux服务器tcp测试工具,Linux网络测试工具Netperf安装及使用

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

  2. 我常用的网络测试工具

    摘自:http://blog.sina.com.cn/s/blog_702b398b0100nv5i.html 首先感谢伟大的互联网提供给我寻找资料的源泉~~ 再感谢伟大的我的公司,提供我学习的动力和 ...

  3. 网络测试工具——tcping

    文章目录 1. tcping与ping的区别 2.tcping的介绍 3.下载与安装 4. tcping命令详解 1. tcping与ping的区别 1.ping:是Windows.Unix和Linu ...

  4. 服务器数据收发测试软件,Packet Sender(UDP/TCP网络测试工具) v7.0.5

    Packet Sender(UDP/TCP网络测试工具)是一个开源实用程序,允许发送和接收TCP.UDP和SSL(加密的TCP)数据包,主线分支正式支持Windows.Mac和桌面Linux,其他地方 ...

  5. 远程管理linux系统工具,远程管理Linux系统工具的设计与实现Linux013

    一种远程管理Linux系统工具的设计与实现 摘  要 现在,Linux已经是应用比较广泛的操作系统之一,在其系统中有很多的服务.为了实现远程配置和管理Linux中的各种服务,需要有一种远程管理Linu ...

  6. 十佳自由Linux物理工具

    为什么80%的码农都做不了架构师?>>> 10 of the Best Free Linux Physics Tools 十佳自由Linux物理工具 Physics is a nat ...

  7. linux系统管理工具sar(一)

    linux系统管理工具sar 监控网卡流量 #sar -n DEV 1 1 (1秒内取1次) Linux 3.10.0-123.9.3.el7.x86_64 (iZ25wvw5wozZ) 01/22/ ...

  8. Red Hat Enterprise Linux 5---system-config-*管理工具

    Red hat提供了一些系统管理工具,协助你更轻松地配置Red Hat Enterprise Linux.这些工具都以system-config为命令名称的开头.如下: system-config-b ...

  9. linux同步工具rsync​

    linux同步工具rsync 一.rsync命令 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地 ...

  10. 【转】Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

最新文章

  1. Java 理论与实践: 正确使用 Volatile 变量
  2. 7、redis之使用spring集成commons-pool来操作常见数据类型
  3. 为节约而生:从标准Attention到稀疏Attention
  4. 全国计算机等级考试题库二级C操作题100套(第66套)
  5. C# partial 部分类使用简单举例说明
  6. php伪静态不支持中文,Discuz开启伪静态导致中文会员使用手机无法访问的解决方法...
  7. Codeforces 739B Alyona and a tree (树上路径倍增及差分)
  8. vue 高阶面试题_大厂面试题合集
  9. VB 二进制数据读写实例
  10. CDH hive的安装
  11. MYSQL列中的数据以逗号隔开,如何查询
  12. 2017级面向对象程序设计——团队作业2
  13. Spring read-only=true 只读事务的一些概念
  14. radar nyoj 287
  15. HDU 5265 pog loves szh II (二分查找)
  16. bbs论坛 Android客户端简单设计
  17. Cadence16.6 PSpice仿真步骤---以分立器件搭建的H桥电路仿真为例
  18. 三星真机云测平台可能是最好的云测平台,因为他免费。
  19. Matlab 实现串口助手
  20. C语言学习:合数和质数的判断

热门文章

  1. 人工神经网络的发展历程,人工神经网络基本结构
  2. 开源| 直播推拉流2.0升级了什么
  3. IntelliJ IDEA最新版官方支持汉化
  4. 2019最新java自学路线
  5. librdkafka的安装和使用
  6. linux vi/vim 的命令
  7. MySql嵌套查询+关联查询+多表查询+对应案例+mybatis动态sql 超详细
  8. flash 图片有描边 html,Flash遮罩制作线条逐渐显示的汽车轮廓动画效果
  9. 使用开源库libyuv中替换开源汇编接口,解决汇编接口中的崩溃问题
  10. php 识别图框,自动识别比例插入CAD图框教程