讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux netperf / iperf3 的 TCP/UDP 吞吐与延迟测量规范

小明大大_2410

小明大大_2410

发布时间:2026-02-24 11:11:02

|

1221人浏览过

|

来源于php中文网

原创

加 -R 才能测出真实下行,因默认 iperf3 -c 测客户端上行吞吐,-R 切换为服务端发送、客户端接收,反映服务器推数据能力;实操中测 Web/CDN/下载必须加 -R。

linux netperf / iperf3 的 tcp/udp 吞吐与延迟测量规范

iperf3 测带宽,为什么加 -R 才能测出真实下行?

默认情况下 iperf3 -c 是客户端发、服务端收,测的是「上行吞吐」(即客户端出口能力)。但多数业务关心的是服务器能否把数据高效推给客户端——也就是「下行吞吐」。不加 -R,你看到的其实是客户端网卡往外打的数据,不是服务端响应用户请求的能力。

实操建议:

  • 测 Web 服务器响应带宽(比如 CDN 回源、API 下载),必须加 -R: iperf3 -c 192.168.1.100 -R -t 10
  • 加 -R 后,sender 行显示的是服务端发送速率,receiver 行是客户端接收速率;丢包和重传统计也以服务端视角为准
  • 别用 -b 限速后还加 -R ——限速值作用于 sender 端,-R 切换后限速就变成服务端输出限速,容易误判链路能力

netperf 的 TCP_RR 和 TCP_CRR 到底在测什么?

TCP_RR(Request/Response)模拟的是「小请求+小响应」交互场景,比如数据库查询、HTTP GET;而 TCP_CRR(Connection Request/Response)只测 TCP 连接建立本身(三次握手 + ACK),不传业务数据。两者单位都是 tps(每秒事务数),但瓶颈点完全不同。

常见错误现象:

  • 测 TCP_RR 得到 800 tps,但实际 HTTP 接口 QPS 只有 200 ——说明瓶颈不在网络栈,而在应用层处理或线程池
  • TCP_CRR 低于 2000 tps,基本可判定内核连接建立慢:net.ipv4.tcp_tw_reuse 未开、SYN 队列溢出(netstat -s | grep "listen overflows")、或中断集中在单个 CPU 核上
  • 测试时漏加 -- -r 2048,2048,默认请求/响应各 1 字节,结果严重失真;真实业务至少设为 1KB~4KB

UDP 测试必须同时看丢包率和抖动,光看带宽没意义

iperf3 -u 默认跑 UDP 流,但它不保证可靠交付。带宽数字再高,如果 Retr(重传)为 0 而 datagrams received out-of-order 或 packets lost 显著,说明底层链路或接收端处理已出问题。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

实操建议:

  • UDP 测试务必加 -b 控制发送速率,否则突发流量直接打爆接收端缓冲区:iperf3 -c 192.168.1.100 -u -b 50M -t 30
  • 服务端需确认是否启用了足够大的 UDP 接收缓冲区:sysctl net.core.rmem_max 至少设为 4MB,否则大量 socket buffer errors
  • 抖动(jitter)值在输出里是毫秒级,但注意:iperf3 计算抖动基于接收时间戳差,若客户端和服务端时钟不同步(如没开 NTP),抖动读数会系统性偏高

别把 iperf3 和 netperf 输出混着比,它们的“吞吐”定义根本不同

iperf3 的 bitrate 是纯 payload 数据速率(不含协议头),单位是 bits/sec;而 netperf TCP_STREAM 的 throughput 默认包含 TCP/IP 头部开销,且受 -m(消息大小)和 -l(测试时长)影响极大——短时测试易受 TCP 慢启动干扰,长时测试又可能掩盖瞬时拥塞。

容易踩的坑:

  • 用 iperf3 测出 9.2Gbps,netperf TCP_STREAM 却只有 7.8Gbps,就断言“netperf 更准”——其实只是 netperf 默认用了 64KB 消息大小,而 iperf3 是流式连续发送
  • 对比前没统一测试条件:iperf3 用 -P 4 开 4 并行流,netperf 却只跑单流,结果差距本质是并行度差异,不是工具偏差
  • netperf 输出里的 elapsed time 包含连接建立、参数协商等控制开销,真正数据传输时间要减去首秒左右的 ramp-up 阶段

最常被忽略的一点:所有工具测出的数字,都依赖于你是否压到了真正的瓶颈。比如 iperf3 显示 950Mbps,但 mpstat -P ALL 1 发现某个 CPU 核跑满 100%,那瓶颈其实在软中断处理,不是网卡或带宽。

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3168

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

5029

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3829

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

466

2026.01.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6107

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2588

2023.08.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

4358

2023.08.10

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2845

2023.06.29

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn