Tailscale 继续提速:多队列上线,小包内存开销下降
来源:tailscale.com — 183 分 · by yarapavan
📋 概述
Tailscale 回顾了自己在数据面性能上的投入:从提升 Linux 上的 TCP 吞吐,到让 wireguard-go 在物理机上突破 10Gb/s,再到用分段卸载把 UDP 应用的吞吐提高四倍以上,并推出 Peer Relays 这类应对复杂网络的构件。文章公布了下一步:面向 app connector、子网路由与出口节点的多队列技术将在 2026 年下半年落地。已经能拿到的收益来自一个具体的内存问题——大多数网络包只有 1KiB 左右,但要用 Generic Receive Offload 这类高效机制就必须准备接收 64KiB,于是每个小包都被复制进一个 64KiB 缓冲区;现在 Linux 与 Android 上改为在原读取缓冲区内标记每个包的起止位置,小包保持小、多个包共享同一块分配,仅此一项就带来大约 5% 的提速。
🔑 核心要点
- 历史投入是连续剧:TCP 吞吐 → wireguard-go 破 10Gb/s → UDP 分段卸载提速四倍以上。
- 下一步方向明确:app connector、子网路由、出口节点用上多队列,2026 年下半年落地。
- 问题根因具体:1KiB 的小包被复制进 64KiB 缓冲区,因为 GRO 要求一次能收 64KiB。
- 优化手法是零拷贝式的:留在原缓冲区里标出每个包的起止,而不是搬到新内存。
- 效果是五项叠加的:小包保持小、多包共享一次分配、复制时间减少,带来约 5% 的提速。
- 目标场景随之扩大:持续集成、智能体工作流、远程开发、机器人边缘设备等对性能敏感的工作负载。
💡 金句
小包在内存里保持小尺寸,许多包共享同一次内存分配,它们在复制上花的时间也更少。
👍 0
👎 0
← 返回 Hacker News 首页