一句话结论
Cloudflare 通过重构 1.1.1.1 解析器内存布局,单条缓存占用降低 56%,集群释放 100TB 内存并提升吞吐量。
关键要点
- Big Pineapple 解析器基准单条内存占用从 953 字节降至 420 字节,减少 56%。
- 生产环境 p99 驻留内存从 9.3GB 降至 5.3GB,p90 从 6.5GB 降至 3.8GB。
- 缓存插入吞吐量提升 43%,查询延迟降低 19%,集群释放约 100TB 工作集内存。
- 优化自 2026 年 5 月 18 日至 7 月 6 日在全网生产环境完成部署。
- 核心设计采用 DNS 有线格式,连续字节缓冲区存储消除枚举与按记录分配的开销。
背景与事实
Cloudflare 负责 DNS 解析的 Big Pineapple 平台在任意时刻存储着超过 2500 亿个 DNS 缓存条目。面对如此海量的数据规模,传统的内存表示方式导致系统开销巨大,迫使工程师对 Rust 实现的缓存结构进行深度优化。这次架构重构对缓存表示形式连续进行了五次迭代。最初的设计将插入后固定不变的数据类型从通用的 Vec 和 String 替换为 Box<[T]> 和 Box 分配器,以减少不必要的内存碎片和元数据开销。
在最终采用的设计哲学中,团队选择了直接使用 DNS 的有线格式(wire format),将记录数据存储在连续的字节缓冲区中。这种设计既消除了处理枚举类型和为每条记录单独分配内存所带来的系统调用开销,又极大地改善了 CPU 缓存的行局部性。对于常用的记录类型,数据可以直接复制并写入响应报文中;而对于包含域名的记录,系统仍需解析以实现 DNS 名称压缩,这是该设计在灵活性上保留的必要兼容层。
这项优化的全面部署发生在 2026 年 5 月 18 日至 7 月 6 日之间。基准测试数据清晰地反映了性能拐点:每个缓存条目的静态内存占用从 953 字节大幅缩减至 420 字节,动态内存分配也降至 461 字节。这种底层数据结构的变化带来了立竿见影的性能提升,缓存插入吞吐量提高了 43%,同时查询延迟降低了 19%。Cloudflare 系统工程师 Sebastiaan Neuteboom 在社交平台上对这一成果进行了评价,指出能够一次性节省 100TB 的内存资源在工程实践中极为罕见。
与业界其他主流递归 DNS 解析器相比,Cloudflare 的优化路径具有明显的侧重点。例如,Unbound 解析器维护着相互独立的消息、资源记录集(RRset)、键和负缓存系统,其缓存大小和分块策略高度可配置;PowerDNS Recursor 则采用了包括数据包缓存和记录缓存在内的多种缓存机制。而 Cloudflare 此次工作的核心在于极致压缩单个缓存条目的表示和分配开销,这种架构选择直接决定了其在超大规模并发下的内存效率。
影响分析
此次架构调整对中文开发者与基础设施从业者提供了明确的工程启示。对于构建高并发 DNS 解析服务或类似键值存储系统的团队而言,该案例证明了直接使用网络协议标准格式(有线格式)作为内存数据结构的可行性。这种设计牺牲了部分抽象便利性,换取了极致的内存紧凑性和缓存局部性。对于国内云厂商和运营商网络运维人员,该优化的价值在于展示了在内存带宽紧张的场景下,通过重构数据布局而非单纯升级硬件来突破性能瓶颈的路径。
同时,Cloudflare 计划利用释放的 100TB 内存来扩展缓存容量,而不增加整体内存预算,这反映了头部基础设施服务商对成本控制的追求。对于技术管理者而言,这一实践表明在规模化系统设计中,内存占用的边际成本与缓存命中率直接相关。对于使用 Rust 进行系统级开发的工程师,该案例中从 Vec/String 到 Box 分配器再到连续缓冲区演进的五次迭代过程,具有直接的参考价值,展示了在内存表示选择上权衡分配器开销与数据局部性的具体方法。
适用边界
必须明确的是,该优化方案存在严格的适用边界。内存优化策略在达到特定请求量级时才能展现出显著收益,在中小规模部署场景下,其带来的额外间接访问开销可能远超实际益处。由于将变体进行装箱的操作增加了内存访问的跳转次数,这会降低 CPU 缓存的行命中率。如果部署规模较小、并发请求不足以触发 L1/L2 缓存的大规模失效,那么维持标准的数据结构抽象反而能获得更好的缓存局部性。此外,该方案要求系统能够适配连续字节缓冲区的解析逻辑,不具备自动处理复杂嵌套对象的能力,不适用于需要频繁修改单字段而非整体替换的缓存场景。
孤本观察
从工程演进轨迹来看,此次优化的关键不在于追求极致的字节压缩,而在于利用有线格式消除了序列化与反序列化的双向往复开销。这是编辑基于本文事实作出的判断,即对于处理路径极其短促的高频读写系统,数据表示层的开销占比远高于业务逻辑层,这是其能够释放 100TB 内存的根本原因。





常见问题
重构后单条 DNS 缓存的内存占用具体从多少降至多少?
单条缓存占用从 953 字节降至 420 字节,减少 56%。
Cloudflare 此次架构重构何时完成全网生产环境部署?
优化于 2026 年 5 月 18 日至 7 月 6 日期间在全网生产环境完成部署。
重构后集群释放了多少内存,吞吐量提升多少?
集群释放约 100TB 工作集内存,缓存插入吞吐量提升 43%。
该优化方案在中小规模部署场景下适用吗?
不适用。中小规模下额外间接访问开销可能远超益处,且装箱操作降低缓存行命中率。
新架构使用什么数据格式存储记录数据?
采用 DNS 有线格式,将记录数据存储在连续的字节缓冲区中。
来源:InfoQ 中文 AI