玩转CVM:iPerf测试

提起iPerf,想必大家都知道它是用来测试网络性能的命令。本篇文章将会教会您如何利用CVM进行iPerf测试

提起iPerf,想必大家都知道它是用来测试网络性能的命令。iPerf是美国伊利诺斯大学(University of Illinois)开发的一种开源的网络性能测试工具。可以用来测试网络节点间(也包括回环)TCP或UDP连接的性能,包括带宽、抖动以及丢包率,其中抖动和丢包率适应于UDP测试,而带宽测试适应于TCP和UDP。

带宽测试一般来说采用UDP模式测试,因为在UDP模式下能测出极限带宽、路径时延、丢包率,这些测试项会在带宽测试报告中打印出来。在进行测试时,先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为1000Mbps,先用 -b 1000M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。

iPerf是基于server-client模式工作的,因此,要使用iPerf测试带宽,需要建立一个服务端(用于丢弃流量)和一个客户端(用于产生流量)。iPerf服务端或者是客户端,都是使用的同一个命令,不过是启动命令的选项不同而已。

iPerf的主要功能

TCP

测量网络带宽

报告MSS/MTU值的大小和观测值

支持TCP窗口值通过套接字缓冲

当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

UDP

客户端可以创建指定带宽的UDP流

测量丢包

测量延迟

支持多播

当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

iPerf安装

安装IPerf,可以在https://iperf.fr/iperf-download.php针对不同的操作系统进行下载,建议下载iPerf2版本,iPerf3由于不能支持多进程下载,所以在进行多进程测试的时候比较麻烦,具体的命令可以仿照如下:

服务端开启多线程:

iperf3 -s -p 5101&; iperf3 -s -p 5102&; iperf3 -s -p 5103 &

客户端开启多线程:

iperf3 -c hostname -T s1 -p 5101 &;

iperf3 -c hostname -T s2 -p 5102 &;

iperf3 -c hostname -T s3 -p 5103 &;

可以看到iPerf3多线程其实就是开启多个端口进行测试,比较麻烦,因此建议下载iperf2.

1.对于windows版的iPerf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可

2.对于linux版的iPerf,请使用如下命令安装

rpm -ivh iperf-<version>.rpm

iPerf启动测试

iPerf测试,需要Server端和Client端各自执行命令启动

服务端

iperf -s -p [端口]

客户端

iperf -c [server IP]

注意:iPerf默认测试的是TCP协议的带宽,如果需要测试UDP的带宽,则需要加上-u选项

如下为简单测试实例:

1.针对TCP进行带宽测试:

iperf -s -p 3389

iperf -c 10.104.17.84 -p 3389 -t 30 -i 1

常用指标介绍:

-c:客户端模式,后接服务器ip

-p:后接服务端监听的端口

-i:设置带宽报告的时间间隔,单位为秒

-t:设置测试的时长,单位为秒,不设置默认10s

-w:设置tcp窗口大小,一般可以不用设置,默认即可

测试多线程TCP,在客户端添加-P参即可测试多线程的TCP性能

玩转CVM:iPerf测试

2.针对UDP进行带宽测试:

iperf -s -p 3389 -u

iperf -c 10.104.17.84 -p 3389 -i 1 -u -b 2000M

常用指标介绍:

-c:客户端模式,后接服务器ip

-p:后接服务端监听的端口

-i:设置带宽报告的时间间隔,单位为秒

-t:设置测试的时长,单位为秒,不设置默认10s

-b:设置udp的发送带宽,单位bit/s

玩转CVM:iPerf测试

本文来自腾讯云计算社区,转载请注明出处:https://computeinit.com/archives/3252

发表评论

登录后才能评论
交流群