使用iperf3检测网卡性能及速度「多平台版」

前言

iPerf3是一个网络性能测试工具,可以点对点测试网络速率,包括网卡上行、下行,可以单线程、多线程测试。iPerf3适用范围很广,本文仅演示与NAS相关范围,比如NAS和电脑(或其他终端)进行点对点测试,用来判断NAS网卡与其他终端在网络方面传输速度是否达标。

图片[1]-使用iperf3检测网卡性能及速度「多平台版」

很多新手玩家传统的测速方法,大部分都是直接让电脑和NAS拷贝数据,看电脑的传输速度。但这种方式有个弊端,那就是硬盘性能大概率会成为整个测速环节的瓶颈(机械硬盘最高速度才200MB/S左右,某些SSD缓外速度甚至不如机械盘),而达不到测试网络理论最高速度的准确结果,特别是使用2.5G或者万兆这类高于硬盘速度的网卡时。iPerf3是运行在内存,不经过硬盘读写,也就不会出现存储的读写性能瓶颈。

各系统使用方法

iPerf3是个多平台程序,任意平台的iPerf3既可以作为服务端,也可以作为客户端,让多平台进行互联测试。

站内提供了威联通系统专用包,和其他品牌NAS|Linux通用版(如:群晖铁威马、爱速特|华硕、UNraid、TrueNAS、FreeNAS等),以及WindowsmacOS版程序包,可以自行选择下载。

Windows

图片[2]-使用iperf3检测网卡性能及速度「多平台版」

Windows的运行方式,打开iPerf3所在文件夹,按住键盘Shift,同时在文件夹窗口空白处点击鼠标右键,右键菜单里会出现“在终端中打开”、“在此处打开PowerShell窗口”、“在此处打开命令窗口”等(Windows系统版本不同而不同),此时命令窗口将会直接切换到iPerf3所在路径。

图片[3]-使用iperf3检测网卡性能及速度「多平台版」

如果是打算将Windows作为服务端,则输入.\iperf3.exe -s
如果是打算作为客户端,连接另一台服务端,则输入.\iperf3.exe -c 加上服务端的IP地址,完整命令如上图所示:.\iperf3.exe -c 192.168.50.5

NAS|Linux

将对应架构的二进制包上传到NAS解压待用,通过SSH链接NAS后台,使用cd命令切换至iperf3二进制文件所在路径,执行chmod +x iperf3命令,给予执行权限。如果作为服务端,则执行./iperf3 -s启动,如果作为客户端,则输入./iperf3 -c 192.168.50.5,其中192.168.50.5是另一台服务端的IP地址。

macOS

macOS有两种方式:一种是通过homebrew命令行安装,需要先安装homebrew 环境,然后执行命令行homebrew install iperf3;另一种则是用封装好的二进制文件,本文开头站内有提供。

在macOS系统访达中,找到应用程序实用工具,打开终端,使用cd命令切换至iperf3程序文件所在路径,执行./iperf3 -s,启动为服务端,如果是作为客户端,则输入./iperf3 -c 192.168.50.5,其中192.168.50.5是另一台服务端的IP地址。

实操演示

为了让小白更熟悉操作方式,和理解常用参数的含义,本次演示都是用的店内的千兆、2.5G、万兆网卡进行实测(购买地址),Windows、macOS、Ubuntu、NAS等多平台系统,作为服务端或者客户端进行测试。

图片[4]-使用iperf3检测网卡性能及速度「多平台版」

上图以macOS系统作为演示,使用-s参数,将macOS系统作为服务端(任意平台系统都可以作为服务端);

iPerf3默认使用5201端口,如果该端口已被占用,可以用-p来指定端口,例如图示的指定5211作为运行端口。

如果服务端使用-p参数指定端口时,其他客户端连接服务端时,也需要-p参数使用相同端口。

当电脑有多个网卡时,需要测试指定网卡,作为服务端时,可以添加-B参数,来指定网卡IP,iPerf3将使用指定网卡进行测试。

图片[3]-使用iperf3检测网卡性能及速度「多平台版」

使用Windows端的iPerf3来连接macOS的服务端,图示演示的是千兆网卡的速率,Transfer列都是110MB每秒,已经跑满千兆理论带宽速度,说明两端的网卡带宽都达标。

图片[6]-使用iperf3检测网卡性能及速度「多平台版」

将macOS的iPerf3作为客户端,使用-c参数指定作为iPerf3服务端NAS上的2.5G网卡IP,-B绑定macOS本机的2.5G网卡进行测试,-t是测试时间,默认是10秒,如果需要更长时间测试,可以自定义数值。

图示演示的2.5G网卡速率测试,Transfer列均为295MB每秒,常见2.5G网卡常规速度一般在280MB每秒左右,已经完全跑满2.5G理论带宽速度。

图片[7]-使用iperf3检测网卡性能及速度「多平台版」

使用Ubuntu系统iPerf3作为客户端,使用-c参数指定作为iPerf3服务端NAS上的10G万兆网卡IP;-B参数绑定万兆网卡IP;iPerf3客户端默认是测试上行(服务端下行),如果需要反过来测试下行(服务端上行),那么就添加-R参数进行翻转测试。

常用命令行参数

iPerf3支持更多丰富的命令行参数,提供更个性化的测试功能,版本不同参数可能略有不同,具体可以使用iperf3 -h,来查看当前版本支持的参数。(本文参数来自威联通3.13.0版本)

服务端和客户端通用:

参数说明
-p, –port服务器侦听和客户端连接服务器的端口,客户端和服务端必须相同,默认值为 5201。
-f, –format [kmgtKMGT]报告格式:Kbits、Mbits、Gbits、Tbits
-i, –interval #周期性吞吐量报告之间的秒数
-I, –pidfile file写入 PID 文件
-F, –file name发送/接收指定文件
-A, –affinity n/n,m设置 CPU 关联性
-B, –bind <host> [<dev>]绑定到与地址关联的接口(<dev>可选的,相当于 “–bind-dev <dev>”)
–bind-dev <dev>绑定到具有 SO_BINDTODEVICE 的网络接口
-V, –verbose更详细的输出
-J, –json以 JSON 格式输出
–logfile f将输出发送到日志文件
–forceflush强制在每个间隔处刷新输出
–timestamps<=format>在每个输出行的开头发出时间戳(可选的 “=” 和格式字符串,格式类似于 strftime(3))
–rcv-timeout #接收数据的空闲超时(默认 120000 毫秒)
–snd-timeout #未确认的 TCP 数据的超时(以毫秒为单位, 默认为系统设置)
-d, –debug[=#]发出调试输出(可选的可选的 “=” 和调试级别:1-4。默认为 4 – 所有消息)
-v, –version显示版本信息并退出
-h, –help显示此消息并退出

服务端专用:

参数说明
-s, –server在服务器模式下运行
-D, –daemon将服务器作为守护进程运行
-1, –one-off处理一个客户端连接,然后退出
–server-bitrate-limit #[KMG][/#]服务器的总比特率限制(默认为 0 = 无限制)
(可选的斜杠和用于平均总数据速率的秒数间隔的数字。默认为 5 秒)
–idle-timeout #在服务器闲置 # 秒后重新启动以防止阻塞(默认 – 无超时)
–rsa-private-key-path用于解密身份验证凭证的 RSA 私钥的路径
–authorized-users-path包含用户凭证的配置文件的路径
–time-skew-threshold身份验证过程中服务器和客户端之间的时间偏移阈值(以秒为单位)

客户端专用:

参数说明
-c, –client <host>[<dev>]以客户端模式运行,连接到<host>(可选,相当于 “–bind-dev <dev>”)
-u, –udp使用 UDP 而不是 TCP
–connect-timeout #控制连接设置的超时时间(毫秒)
-b, –bitrate #[KMG][/#]目标比特率,以每秒位数为单位(0 表示无限制)
(默认为 UDP 的 1 Mbit/sec,TCP 为无限制)(可选的斜杠和用于突发模式的数据包计数)
–pacing-timer #[KMG]设置调节的时间,以微秒为单位(默认为 1000)
–fq-rate #[KMG]启用基于公平排队的套接字调节,以位/秒为单位(仅限 Linux)
-t, –time #传输时间,以秒为单位(默认为 10 秒)
-n, –bytes #[KMG]要传输的字节数(代替 -t)
-k, –blockcount #[KMG]要传输的块(数据包)数量(代替 -t 或 -n)
-l, –length #[KMG]缓冲区的长度读取或写入(TCP 默认为 128 KB,UDP 为动态或 1460)
–cport <port>绑定到特定的客户端端口(TCP 和 UDP,默认:临时端口)
-P, –parallel #要运行的并行客户端流的数量
-R, –reverse以反向模式运行(服务器发送,客户端接收)
–bidir以双向模式运行。客户端和服务器都发送和接收数据。
-w, –window #[KMG]设置发送/接收套接字缓冲区大小(间接设置 TCP 窗口大小)
-C, –congestion <algo>设置 TCP 拥塞控制算法(仅限 Linux 和 FreeBSD)
-M, –set-mss #设置 TCP/SCTP 最大分段大小(MTU – 40 字节)
-N, –no-delay设置 TCP/SCTP 无延迟,禁用 Nagle 算法
-4, –version4仅使用 IPv4
-6, –version6仅使用 IPv6
-S, –tos N设置 IP 服务类型,范围 0-255。可以使用八进制和十六进制的常见前缀,
即 52、064 和 0x34 都表示相同的值。
–dscp N 或 –dscp val设置 IP dscp 值,范围 0-63 或符号值。数值可以以十进制、
八进制和十六进制指定(参见上面的 –tos)。
-L, –flowlabel N设置 IPv6 流标签(仅限 Linux 支持)
-Z, –zerocopy使用“零拷贝”方法发送数据
-O, –omit N在 N 秒内执行预测试并省略预测试统计
-T, –title str在每个输出行的开头添加此字符串
–extra-data str在客户端和服务器的 JSON 中包含的数据字符串
–get-server-output从服务器获取结果
–udp-counters-64bit在 UDP 测试数据包中使用 64 位计数器
–repeating-payload在负载中使用重复模式,而不是随机负载(类似于 iperf2)
–dont-fragment设置 IPv4 不分段标志
–username身份验证的用户名
–rsa-public-key-path用于加密身份验证凭证的 RSA 公钥的路径
本文标题:使用iperf3检测网卡性能及速度「多平台版」
原文链接:https://www.naslab.club/696.html
温馨提示:本文最后更新于2023-08-29 15:53,因系统或软件版本更新,可能会导致文章内容或资源失效,如有发现请在下方留言或联系社长Mojelly,我们将及时进行更新修复!
© 版权声明
THE END
如果文章对您有帮助可以分享或打赏作者
点赞1打赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容