为了查看搭建的网络的吞吐量能力,需要对网络进行测速。
网络测速有两种方式:
1. TamoSoft Throughput Test
应用场景
仅有windows系统的时候,此时可以使用软件TamoSoft Throughput Test,这个软件在网络上有安装版和汉化绿色版,均可使用,测速方式比较简单。
操作步骤
- 在服务器上打开server,设置好端口,然后应用即可
- 在需要访问服务器的客户端上打开Client,设置好服务器的IP地址、设置与server相同的端口,然后连接即可开始测试
- 如果要结束测试,在Client上点击端口,然后关闭Server端即可
2. iperf3
应用场景
如果服务是部署在Linux上,而客户端有windows和Linux系统,此时需要使用软件iperf,此软件免费,网址是https://iperf.fr/或者http://software.es.net/iperf/或者https://github.com/esnet/iperf,这是个命令行工具,windows下的图形界面为Jperfhttps://sourceforge.net/projects/iperf/files/jperf/
简单操作步骤
- 安装
- Centos7安装扩展yum源之后,可以使用命令
yum install iperf
安装此工具。除此之外,还可以官网下载rpm包进行安装或者下载源码包进行编译安装 - windows系统只需要去官网下载压缩包,解压即可使用
- Centos7安装扩展yum源之后,可以使用命令
- 测速。测速模式和TamoSoft Throughput Test相同,分为server端和client端
- TCP测速
- 服务端:
iperf3 -s -B 服务器IP
- 客户端:
iperf3 -c 服务器IP
- 服务端:
- UDP测速:
- 服务端:
iperf3 -s -B 服务器IP
- 客户端:
iperf3 -c -u 服务器IP
- 服务端:
- TCP测速
详细介绍
功能
1. TCP
- 测量网络带宽
- 报告MSS/MTU值的大小和观测值
- 支持TCP窗口值通过套接字缓冲
- 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
2. UDP
- 客户端可以创建指定带宽的UDP流
- 测量丢包
- 测量延迟
- 支持多播
- 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
3. 其他
- 在适当的地方,选项中可以使用K(kilo-)和M(mega-),例如131072字节可以用128K代替
- 可以指定运行的总时间,甚至可以设置传输的数据总量
- 在报告中,为数据选用最合适的单位
- 服务器支持多重连接,而不是等待一个单线程测试
- 在指定时间间隔重复显示网络带宽,波动和丢包情况
- 服务器端可作为后台程序运行
- 服务器端可作为Windows 服务运行
- 使用典型数据流来测试链接层压缩对于可用带宽的影响
- 支持传送指定文件,可以定性和定量测试
命令行详解
1. 客户端与服务器共用选项
-p, --port #
:要侦听/连接到的服务器端口。默认是5201端口-f, --format [kmgKMG]
:格式化带宽数输出,默认为M-i, --interval #
:设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为0-F, --file name
:使用特定的数据流测量带宽,例如指定的文件-B, --bind <host>
:绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口;对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。在UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址-V, --verbose
:输出更多的细节-J, --json
:输出Json格式--logfile f
:输出结果到日志文件-d, --debug
:进入调试模式,显示更多内容-v, --version
:显示版本号-h, --help
:帮助内容
2. 服务器端专用选项
-s, --server
:服务器模式-D, --daemon
:将服务器作为守护程序运行。Unix平台下,Iperf作为后台守护进程运行;在Win32平台下,Iperf将作为服务运行-I, --pidfile file
:将进程号写入pid文件-1, --one-off
:处理一个客户端连接,然后退出
3. 客户端专用选项
-c, --client <host>
:运行Iperf的客户端模式,连接到指定的Iperf服务器端-u, --udp
:使用UDP方式而不是TCP方式-b, --bandwidth #[KMG][/#]
:目标带宽(bits/sec)(0表示无限)。UDP默认1Mbit/sec,TCP不受限制。对于突发模式,可选斜杠和数据包计数-t, --time #
:传输时间(秒),默认10秒-n, --bytes #[KMG]
:要传输的字节数(替代-t)-k, --blockcount #[KMG]
:要传输的块(数据包)数(用来替代-t或-n)-l, --len #[KMG]
:读取或写入的缓冲区长度(TCP默认128KB,UDP默认8KB)--cport <port>
:绑定到特定的客户端端口(TCP和UDP,默认值:临时端口)-P, --parallel #
:服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接-R, --reverse
:以反向模式运行(服务器发送,客户端接收)-w, --window #[KMG]
:设置窗口大小/套接字缓冲区大小-M, --set-mss #
:设置TCP/SCTP最大段大小(MTU-40字节)-N, --no-delay
:设置TCP/SCTP无延迟,即禁用Nagle算法-4, --version4
:仅用ipv4-6, --version6
:仅用ipv6-S, --tos N
:设置服务类型-Z, --zerocopy
:使用“零拷贝”方法发送数据-O, --omit N
:省略前n秒-T, --title str
:在每个输出行前面加上特定字符串--get-server-output
:从服务器获取结果--udp-counters-64bit
:在UDP测试数据包中使用64位计数器