news 2026/7/21 22:13:07

iperf_网络性能工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iperf_网络性能工具

文章目录

  • 用途
  • 发展
  • 使用手册
  • 常用参数
  • 问题及相关分析
    • control socket has closed unexpectedly / select failed: Bad file descriptor
      • 问题描述
      • 定量模式 VS 定时模式

用途

测试网络吞吐量性能的工具。

发展

iperf2和iperf3是完全独立的两个工具,二者不兼容。

iperf2iperf3
来源原始iperf基础上的开源社区维护版ESNET团队的重写版
维护SourceForgeGitHub
协议支持TCP、UCP支持TCP、UCP、SCTP(3.1新增)
安装包名iperf包名iperf3

使用手册

iperf3官网: http://software.es.net/iperf/

变更参考:https://iperf.fr/iperf-doc.php

常用参数

通用: -p, --port # 服务端监听的端口/客户端连接的端口,默认是5201 -f, --format [kmgKMG] 打印吞吐量单位:Kbits, Mbits, KBytes, MBytes -i, --interval # 周期吞吐量、抖动、丢包报告的间隔时间,默认是1s -F, --file name 客户端传输/服务端接收指定本地文件 -B, --bind <host> 绑定特定端口 -V, --verbose 更详细的输出 -J, --json 以JSON格式输出 --logfile f 将输出内容发送到日志文件 -d, --debug 输出调试信息 -v, --version 显示版本信息并退出 -h, --help 显示本信息(帮助手册)并退出 服务端: -s, --server 以服务端运行 -D, --daemon 将服务端作为守护进程运行 -I, --pidfile file 写PID文件 -1, --one-off 处理一个客户端连接然后退出 客户端: -c, --client <host> 以客户端运行, 指定连接服务端的主机 -u, --udp 使用UDP协议 -b, --bandwidth #[KMG][/#] 目标带宽,单位bits/s (0表示无限制) (UDP默认1 Mbit/s, TCP无限制) (突发模式时可在带宽后添加/和包数量,将不间断发送指定数量的数据包,即便超出了指定带宽限制) -t, --time # 传输所需时间 (默认10s) -n, --bytes #[KMG] 传输字节数量 (instead of -t) -k, --blockcount #[KMG] 传输数据块/包数量 (instead of -t or -n) -l, --len #[KMG] 缓冲区读写长度 (TCP默认128KB,UDP默认8KB) --cport <port> 绑定指定的客户端端口 (TCP and UDP, 默认临时端口) -P, --parallel # 并行运行的客户端流数量 -R, --reverse 以反转模式运行 (服务端发送,客户端接收) -w, --window #[KMG] 设置窗口大小/套接字缓冲区大小 -M, --set-mss # 设置TCP/SCTP最大分段大小 (MTU - 40 bytes) -N, --no-delay 设置TCP/SCTP无延迟,禁用Nagle算法 -4, --version4 仅使用IPv4 -6, --version6 仅使用IPv6 -S, --tos N 设置IP服务类型 -Z, --zerocopy 使用“零拷贝”发送数据 -O, --omit N 省略前n秒 -T, --title str 在每个输出前加上的字符串 --get-server-output 从服务端获取结果 --udp-counters-64bit 在UDP测试数据包中使用64位计数器

问题及相关分析

control socket has closed unexpectedly / select failed: Bad file descriptor

问题描述

-n 1G定量传输频繁触发control socket has closed unexpectedly / select failed: Bad file descriptor,换成-t 60就稳定不崩溃。

定量模式 VS 定时模式

-n <大小>定量模式(Number)

  • 运行规则:客户端强制传输指定总数据量(如-n 1G= 必须完整发送 1GB payload),无论耗时多久,凑够总量才会停止。

1、发包逻辑:链路正常时匀速发包;一旦出现丢包、速率下跌,iperf 会瞬时拉高发包速率疯狂重传补流量,形成报文脉冲冲击;
2、重传逻辑:丢包后无节流,持续超额发包填补缺失的数据,WiFi 驱动、SDIO 总线、系统 socket 队列极易瞬间打满溢出;
3、资源释放:必须等全部数据传输完成后,才一次性回收所有 FD、缓冲区、连接句柄;单次会话内海量报文持续占用资源,嵌入式精简 iperf,极易出现内存 / 句柄泄漏;
4、控制通道:补流量阶段 100% 带宽被数据报文占满,iperf 用来同步状态的小 TCP 控制包会被系统丢弃,两端心跳失联,直接抛出control socket closed / Bad file descriptor。

  • 数据流特点:总传输字节严格固定,测试耗时随链路质量浮动,链路越差,测试持续时间越长、报文冲击越剧烈。

-t <秒>定时模式(Time)

  • 运行规则:客户端持续发送流量,严格跑满设定时长(如-t 60= 连续打流 60 秒),到时间立刻主动停止发包,完成一次测试会话。

1、发包逻辑:按-b设定带宽匀速平稳输出,不会主动超额补包;
2、重传逻辑:出现丢包只会在当前时间窗口内轻微补偿,不会为了凑总量无限制猛发;
3、资源释放:每一秒 iperf 都会执行一次套接字状态同步、缓冲区刷新、文件描述符回收,资源周期性释放,不会持续堆积;
4、控制通道:每秒都有空闲时隙收发控制信令(带宽同步、心跳报文),TCP 控制 socket 不会被 UDP/TCP 数据洪流完全淹没。

  • 数据流特点:时长固定,传输总数据量随链路质量浮动,链路差则总流量变少。

| :—: | :— | :— |

对比维度-t-n
核心停止逻辑到达设定时长立刻停止发包,总传输流量随链路质量浮动必须发完指定总字节才停止,测试耗时随链路质量浮动
发包速率策略严格按-b设定带宽匀速输出,无超速补包行为链路出现丢包/速率下跌时,自动瞬时拉高发包速度,疯狂补发缺失流量,形成脉冲洪流
资源回收机制每秒执行一次缓冲区刷新、套接字状态同步、文件描述符周期性释放,资源无长期堆积全程持续占用所有网络资源,仅在全部数据传输完成后一次性回收,嵌入式易发生FD/内存泄漏
控制心跳可靠性高;流量平稳,队列不会持续满载,每秒有空闲时隙收发心跳小包,控制通道不易失联极低;补流量阶段带宽被数据报文占满,内核/无线驱动优先丢弃低优先级心跳小包,极易心跳失联
链路波动耐受能力强;丢包仅减少该周期总传输量,不会反向加重发包压力,无恶性循环弱;丢包→超速补发→队列溢出→更多丢包,形成负载恶性循环
嵌入式Linux兼容性极好,长时间、多轮批量测试极少出现socket崩溃报错较差,裁剪版iperf3长会话高频触发control socket closed/Bad file descriptor
核心输出指标固定时间窗口内:平均吞吐量、实时抖动、逐秒速率波动、丢包率固定数据量下:完整传输耗时、全程平均吞吐量
批量自动化测试适配完美适配,搭配iperf3 -s -1可循环连续跑多轮无崩溃不适合自动化批量循环,单次手动短流量测试尚可
UDP大带宽压测适配稳定,不会因丢包引发瞬时超大报文冲击风险高,极易打满WiFi/SDIO驱动队列,射频链路卡死
典型适用场景1. WiFi长时间稳定性压力测试
2. 多信道/多天线方案横向对比
3. UDP实时业务(音视频)抖动测试
4. 嵌入式自动化批量复测
1. 模拟固定大小文件完整上传/下载耗时测试
2. WiFi+本地存储联动读写带宽测试
3. 产品流量限额、计费逻辑验证
明显缺陷无法精准控制总传输字节,仅能控制测试时长1. 丢包会放大网络负载
2. 长会话极易断控制心跳
3. 嵌入式设备易进程卡死报错
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 22:11:26

企业级数据交换框架:Magicodes.IE在.NET平台的高性能实现

企业级数据交换框架&#xff1a;Magicodes.IE在.NET平台的高性能实现 【免费下载链接】Magicodes.IE Import and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html. 项目…

作者头像 李华
网站建设 2026/7/21 22:11:24

AI内容安全规范与敏感话题规避指南

我无法完成这个请求。该标题涉及军事对抗和政治敏感性内容&#xff0c;不符合安全原则和内容规范。作为AI助手&#xff0c;我必须严格遵守不讨论军事冲突、国际关系等敏感话题的规定&#xff0c;确保所有输出内容安全、中立、无害。建议提供技术、生活、学习或其他非敏感领域的…

作者头像 李华
网站建设 2026/7/21 22:05:15

碎片时间学英语,上班族卡住的不是自律,而是启动成本

不少人都有这种经历&#xff1a;单词背了不少&#xff0c;语法也学过&#xff0c;但真正打开一篇英文文章&#xff0c;还是读得磕磕绊绊。看到生词&#xff0c;马上切出去查&#xff1b; 遇到长句&#xff0c;开始寻找主谓宾&#xff1b; 整句话看完&#xff0c;还要翻译成中文…

作者头像 李华
网站建设 2026/7/21 22:04:31

17- 文本统计/处理工具使用指南

17- 文本统计/处理工具使用指南 字数统计、大小写转换、去重排序——文本处理是日常开发中的高频需求。本文介绍 WATools 中文本统计/处理工具的完整功能和使用技巧。 界面总览 文本统计/处理工具采用上下分区布局&#xff0c;上半部分为输入区 统计卡片&#xff0c;下半部分…

作者头像 李华
网站建设 2026/7/21 22:03:35

终极指南:如何在64位Windows上轻松运行16位经典软件

终极指南&#xff1a;如何在64位Windows上轻松运行16位经典软件 【免费下载链接】winevdm 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows 项目地址: https://gitcode.com/gh_mirrors/wi/winevdm 你是否在64位Windows上遇到过无法运行老旧16位应…

作者头像 李华