iperf3 网络带宽测试工具

这篇具有很好参考价值的文章主要介绍了iperf3 网络带宽测试工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

iperf3 网络带宽测试工具

iperf3 是一个 TCP, UDP, 和 SCTP (传输层协议)网络带宽测量工具.

简介


iperf 是一个用于主动测量 IP 网络上最大可用带宽的工具. 它支持与时间、协议和缓冲区相关的各种参数的调优. 对于每个测试,它报告测量的吞吐量/比特率(带宽), 丢包率和其他参数.

这个版本,有时被称为 iperf3, 是 NLANR/DAST 开发的原始版本的重新设计. iperf3 是一个从头开始的新实现, 目标是更小, 更简单的代码库, 以及可以在其他程序中使用的功能的库版本. iperf3 还具有许多在其他工具(如 nutctp 和 netperf)中可以找到的特性, 但这些特性在最初的 iperf 中是没有的. 例如, 这包括 零复制模式 和可选的 JSON输出. 注意 iperf3 与原来的 iperf 不向后兼容.

iperf3 的主要工作开发是在 CentOS Linux, FreeBSD 和 macOS 上进行的. 目前, 这些是唯一得到官方支持的平台, 但是已经有一些关于 OpenBSD, NetBSD, Android, Solaris 和其他 Linux 发行版的成功报告.

iperf3 主要由 ESnet / Lawrence Berkeley National 实验室开发. 它是在 three-clause BSD 许可下发布的.

更多信息: http://software.es.net/iperf

源代码和问题跟踪: https://github.com/esnet/iperf

获得 iperf3


iperf3 的下载地址:

http://downloads.es.net/pub/iperf/
https://iperf.fr/

要查看最新的代码, 克隆 git 存储库:

https://github.com/esnet/iperf.git

构建 iperf3


./configure
make
make install

使用


iperf3 包含一个列出所有命令行选项的手册页. 手册页是对各种标志和参数的最新参考.

有关命令行使用示例,请参见:

https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/

使用默认选项, iperf 旨在显示典型的精心设计的应用程序(Typical well designed application)性能.

典型的精心设计的应用程序(Typical well designed application) 意味着避免只对测试有效的人工增强(例如 splice() 将数据发送到 /dev/null). iperf 也有用于 “极端最佳情况” 优化的标志, 但必须显式地激活它们.

这些标志包括:
-Z, --zerocopy 使用 ‘zero copy’ sendfile() 的方式数据发送
-A, --affinity n/n,m 设置 CPU 亲和力

快速开始

  1. 接收端
# 参数 -s 表示 iperf3 以服务端模式运行.
iperf3 -s

输出

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

iperf3 服务监听在默认端口 5201

  1. 发送端
# 参数 -c 表示 iperf3 以客户端模式运行, 192.168.101.7 为服务端的IP地址.
iperf3 -c 192.168.101.7

输出

[  5] local 192.168.101.5 port 53506 connected to 192.168.101.7 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  91.2 MBytes   765 Mbits/sec    0    837 KBytes
[  5]   1.00-2.00   sec  86.2 MBytes   724 Mbits/sec    0    969 KBytes
[  5]   2.00-3.00   sec  87.5 MBytes   734 Mbits/sec    0    969 KBytes
[  5]   3.00-4.00   sec  87.5 MBytes   734 Mbits/sec    0    969 KBytes
[  5]   4.00-5.00   sec  87.5 MBytes   734 Mbits/sec    0    969 KBytes
[  5]   5.00-6.00   sec  88.8 MBytes   744 Mbits/sec    0    969 KBytes
[  5]   6.00-7.00   sec  87.5 MBytes   734 Mbits/sec    0    969 KBytes
[  5]   7.00-8.00   sec  87.5 MBytes   734 Mbits/sec    0   1.04 MBytes
[  5]   8.00-9.00   sec  87.5 MBytes   734 Mbits/sec    0   1.09 MBytes
[  5]   9.00-10.00  sec  87.5 MBytes   734 Mbits/sec    0   1.09 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   879 MBytes   737 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   876 MBytes   735 Mbits/sec                  receiver

发送端使用端口 53506 连接到接收端的 5201 端口.
总共发送了 879 MBytes 数据, 发送端测得带宽为 737 Mbits/sec.
接收端总共接收到 876 MBytes 数据, 接收端测得带宽为 735 Mbits/sec.

常用参数

iperf3 参数分为服务端参数, 客户端参数, 通用参数.

参考文档
https://iperf.fr/iperf-doc.php

通用参数 (Server or Client)
  -p, --port      #         用于监听/连接的服务器端口, 默认值是 5201.
  -f, --format   [kmgtKMGT] 输出报告的单位(默认值: m): Kbits, Mbits, Gbits, Tbits (小写为bit, 大写为 Byte)
  -i, --interval  #         每次报告的间隔时间(单位: 秒, 默认值: 1)
  -F, --file name           指定 xmit/recv 的文件, 客户端模式下表示要发送的文件名, 服务端模式下表示要写入的文件名.
  -A, --affinity n/n,m      设置 CPU 亲和性
  -B, --bind      <host>    绑定到主机<host>, 这台机器的地址之一. 
                            对于客户端, 这将设置出站网络接口.
                            对于服务器, 这将设置传入接口.
                            这只在具有多个网络接口的多主机上有用.
  -V, --verbose             更详细的输出
  -J, --json                使用 JSON 格式输出
  --logfile f               输出日志到文件
  --forceflush              在每个间隔强制 flush 输出
  --timestamps    <format>  在每个输出行开始处添加一个时间戳
                            (使用可选格式字符串按 strftime(3) 给定)
  -d, --debug               打开调试输出
  -v, --version             显示版本信息并退出
  -h, --help                显示此消息并退出
服务端专用参数 (Server specific)
  -s, --server              以服务器模式运行
  -D, --daemon              将服务器作为守护进程运行
  -I, --pidfile file        写到 PID 文件
  -1, --one-off             处理一个客户端连接然后退出
  --server-bitrate-limit #[KMG][/#]   服务器的总比特率(带宽)限制 (默认值: 0 = 无限制)
                            (可选的斜杠和数值(/#) 表示#秒间隔的平均值, 默认为5秒 )
  --rsa-private-key-path    用于解密认证凭证的 RSA 私钥路径
  --authorized-users-path   包含用户凭证的配置文件的路径
客户端专用参数 (Client specific)
  -c, --client    <host>    以客户端模式运行, 连接到 <host> (服务器地址)
  --sctp                    使用 SCTP 而不是 TCP
  -X, --xbind <name>        将 SCTP 关联绑定到链接
  --nstreams      #         SCTP 流的个数
  -u, --udp                 使用 UDP 而不是 TCP
  --connect-timeout #       控制连接建立超时 (ms)
  -b, --bitrate #[KMG][/#]  目标比特率 bits/sec (0 表示无限制)
                            (UDP: 默认为 1 Mbit/sec, TCP: 默认无限制)
                            (可选的斜杠和数字, 数字表示突发模式的包数)
  --pacing-timer #[KMG]     设置 pacing 时间,以微秒为单位(default 1000)
  --fq-rate #[KMG]          启用基于套接字的 pacing bits/sec 的加权公平队列(fair-queuing)(只有 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, default: 临时端口)
  -P, --parallel  #         要运行的并行客户端流的数量(并行测试)
  -R, --reverse             以反向模式运行(服务器发送,客户端接收)
  --bidir                   以双向模式运行.
                            客户端和服务器同时发送和接收数据. 
  -w, --window    #[KMG]    设置窗口大小/套接字缓冲区大小
  -C, --congestion <algo>   设置 TCP 的拥塞控制算法 (只有: Linux 和 FreeBSD 支持)
  -M, --set-mss   #         设置 TCP/SCTP 最大分段大小(MSS, MTU - 40字节)
  -N, --no-delay            设置 TCP/SCTP 无延迟,禁用 Nagle's 算法
  -4, --version4            只使用 IPv4
  -6, --version6            只使用 IPv6
  -S, --tos N               设置 IP 服务类型(TOS, Type Of Service), 0-255.
                            可以使用八进制和十六进制的常用前缀,
                            例如 52, 064 和 0x34 都指定相同的值.
  --dscp N or --dscp val    设置 IP dscp 值, 0-63 或 象征值.
                            数值可以用十进制指定,
                            八进制和十六进制(参考 --tos).
  -L, --flowlabel N         配置IPv6流标签 (仅在 Linux 上支持)
  -Z, --zerocopy            使用 "零拷贝" 方法发送数据
  -O, --omit N              省略前 N 秒的测试(忽略 TCP 慢启动)
  -T, --title str           在每个输出行前加上这个字符串
  --extra-data str          包含客户端和服务器 JSON 数据字符串
  --get-server-output       从服务器获取结果
  --udp-counters-64bit      在 UDP 测试包中使用 64 位计数器(防止计数器溢出)
  --repeating-payload       在有效载荷中使用重复模式,而不是随机有效载荷(如 iperf2)
  --username                认证用户名
  --rsa-public-key-path     用于加密认证凭证的 RSA 公钥的路径

用例

例: TCP 带宽测试

服务端

iperf3 -s

客户端

iperf3 -c 192.168.101.7
例: UDP 带宽测试

服务端

iperf3 -s

客户端

# UDP 模式下 -b 默认为 1Mbps, 手动设置为 0 = 无限制.
iperf3 -c 192.168.101.7 -u -b 0
例: 测试反向 TCP 带宽

服务端

iperf3 -s

客户端

iperf3 -c 192.168.101.7 -R
例: 测试双向 TCP 带宽

服务端

iperf3 -s

客户端

iperf3 -c 192.168.101.7 --bidir

[TX-C] 为客户端发送数据 对应 -> [RX-S] 为服务端接收数据
[RX-C] 为客户端接收数据 对应 <- [TX-S] 为服务端发送数据

参考

http://software.es.net/iperf

https://github.com/esnet/iperf

http://downloads.es.net/pub/iperf/

https://iperf.fr/

https://github.com/esnet/iperf.git

https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/

https://iperf.fr/iperf-doc.php文章来源地址https://www.toymoban.com/news/detail-448444.html

到了这里,关于iperf3 网络带宽测试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络性能测试工具:iperf3

    iperf3 是一个网络性能测试工具(iperf3下载地址)。iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。iperf可以报告带宽,延迟抖动和数据包丢失。 iperf3是一种用于主动测量IP网络上可实现的 最大带宽 的工具。 它支持调整与时序、缓冲区和协议(

    2024年02月16日
    浏览(52)
  • 网络性能测试工具 iperf3

    iperf3软件下载地址:https://liyouchen.lanzoul.com/iZmaI0otb1de 下载到电脑到,并解压后,会得到两个文件:cygwin1.dll 和 iperf3.exe,这两个文件拷贝到 c:windows 目录下 最后打开 cmd,执行 iperf3 --version ,若安装成功,会打印出版本信息 最后要在使用前,关闭防火墙 iperf3 有客户端 和 服务

    2024年02月12日
    浏览(87)
  • 网络测试工具——iperf3详细使用说明

    iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。 操作系统:Ubuntu20.04LTS 打开终端,直接输入 说明:不同的系统安装方式不同,这里只介绍ubuntu系统 环境假设: 假设两台设备。 A(客

    2024年02月03日
    浏览(55)
  • Linux环境安装iperf3(网络性能测试工具)

    iperf官网地址: iPerf - The TCP, UDP and SCTP network bandwidth measurement tool   iperf特性: 测量带宽 报告MSS/MTU大小和观察到的读数大小。 通过套接字缓冲区支持TCP窗口大小。 UDP 客户端可以创建指定带宽的UDP流。 测量数据包丢失 测量延迟抖动 支持多播 跨平台:Windows、Linux、Android、

    2024年02月03日
    浏览(45)
  • 服务器带宽测试工具:iPerf的安装与使用

    Linux 环境安装及相关使用命令: 一、安装 iperf3 1、 yum 安装 2、其他操作系统可以下载官网的软件包 下载完成后可以通 rpm -ivh 进行安装。 官网地址: https://iperf.fr/iperf-download.php 二、服务端启动命令 1、开启 ipert3 服务器端 2、客户端测速命令 举个例子: Windows 环境安装及相关

    2024年02月07日
    浏览(63)
  • iperf3 测试100G网卡带宽性能

    iperf3 作为iperf 系列网络测试工具新一代工具,开发团队重写代码使之有全新的实现方式,更少的代码量,更加小巧,但这也导致了其与iperf工具前后不兼容,一些命令执行具有差异化,而这些差异在大带宽网卡性能测试时则更加明显,现记录整理以供大家参考。 iperf 带宽性能

    2023年04月08日
    浏览(41)
  • iperf3测试服务器tcp带宽udp丢包率

    要使用 iperf 测试网络的性能,您需要两台计算机,一台作为服务器,一台作为客户端,这将帮助您测试两台主机之间的网段。特别注意的是两台计算机的网口一定是同样的网口,测试的数据才是准确的,我之前测试的时候服务器端网口是万兆的,客户端用的是千兆的,所以测

    2024年02月12日
    浏览(46)
  • Iperf网络测试工具

    Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,可以用来测量网络带宽和网络质量,提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。 安装 iperf源码仓库 measurement tool (github.com) iperf官网 iPerf - The TCP, UDP and SCTP network bandwidth measurement tool 帮助手册 简单测试 serv

    2024年02月06日
    浏览(55)
  • 网络测试工具—— iperf2详细使用方法

    很多公司都在将自己的无线网络升级到802.11n,以实现更大的吞吐量、更广的覆盖范围和更高的可靠性,然而保证无线LAN(WLAN)的性能对于确保足够的网络容量和覆盖率尤为重要。下面,我们将探讨如何通过iPerf来测定网络性能,这是一个简单易用测量TCP/UDP的吞吐量、损耗和

    2024年02月06日
    浏览(74)
  • 网络测试工具—— iperf2 安卓APK 下载 及简单使用

    项目上有一款安卓车机加载局域网图片加载非常慢,所以需要测试一个安卓车机设备的带宽,经过调研后使用到了iperf2。 iperf2是一款开源的网络性能测试工具,用于测量TCP和UDP带宽质量。它支持测量最大TCP带宽,并具有多种参数和UDP特性。iperf2可以报告带宽、延迟抖动和数据

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包