人工智能

Cloudflare 优化 1.1.1.1 底层缓存:不换硬件释放约 100TB 内存,DNS 延迟降 19%

2026年8月30日 · admin
openmagic ad

据 IT之家 8 月 29 日消息,Cloudflare 近日在博客中披露,其对支撑 1.1.1.1 等 DNS 服务的 Big Pineapple 平台进行了底层缓存数据结构优化,在不更换硬件的情况下,释放了约 100TB RAM 内存资源,并让 DNS 查询延迟降低约 19%。Big Pineapple 是 Cloudflare 用于承载 1.1.1.1、Gateway DNS、DNS Firewall、AS112 等多项 DNS 服务的核心平台,任意时刻保存的 DNS 缓存条目超过 2500 亿条。在这样的规模下,单条记录哪怕只多占用 1 字节,都会在集群层面放大为超过 250GB 的额外内存消耗。

从 Rust 数据结构入手:把“看不见的浪费”压到极致

Cloudflare 此次优化的重点并不是采购新服务器,而是重构由 Rust 编写的 DNS 缓存数据结构。DNS 缓存本质上由键值对组成:键用于标识被查询的域名、记录类型、认证状态等信息;值则保存 DNS 响应数据、权威记录、附加记录,以及创建时间、TTL、命中次数等元数据。

在原有设计中,Rust 的 Vec 和 String 会保留用于动态扩容的 capacity 字段。但 DNS 响应一旦写入缓存,通常不会继续修改,因此这部分能力在缓存场景下并不总是必要。Cloudflare 将相关结构替换为 Box<[T]> 和 Box<str>,减少每个字段 8 字节开销,并避免为未来扩容预留空间。由于每个缓存条目里有 8 个相关 Vec 和 String 字段,理论上单条记录可减少 64 字节。按照超过 2500 亿条缓存记录估算,仅这一项就可带来超过 15TB 的累计节省。

随后,Cloudflare 又减少了 DNS 响应中多个列表带来的指针开销。过去数据记录、权威记录和附加记录分别存储在不同列表中;优化后改为使用单个列表,并通过偏移量标记不同区域的起始位置。由于 DNS 记录数量可用 u16 表示,相关字段从指针和长度信息改为更小的偏移量,单条缓存记录再节省 28 字节。

针对 DNS 记录类型做“冷热分层”

Cloudflare 还对 DNS 记录中的 owner 字段进行压缩。多数情况下,记录所属域名与用户查询域名一致,因此缓存时无需重复保存;只有 CNAME 等记录所属域名不同的场景,才额外保留完整域名。读取缓存时,如果 owner 字段为空,则直接从缓存键中的查询域名恢复。

更关键的变化来自 Rust enum 的存储方式。原先 RecordData 枚举需要按最大成员 NAPTR 的尺寸分配空间,这意味着常见的 A、AAAA 记录也要承担大量未使用的空间。来源显示,A 和 AAAA 记录占全部流量 80% 以上,因此这种统一按最大成员分配的设计在超大规模 DNS 缓存中会被显著放大。

Cloudflare 最初将 TXT、NAPTR、SVCB 等较大的枚举成员放入堆内存,而 A、AAAA 等体积较小且高频的记录继续直接存储,使 A 记录每条可节省 120 字节。不过,单独堆分配也会带来分配器开销和内存局部性下降,因此 Cloudflare 进一步改变数据布局:将 DNS 记录的数据部分直接保存为连续原始字节,而不是为每种记录建立独立的解析后对象。

  • 连续存储:每条记录由长度信息和原始数据组成,集中放入一个 Box<[u8]>。
  • 减少对象开销:取消此前每条记录对应的枚举和独立堆分配。
  • 提升 CPU 缓存友好度:连续排列的数据更利于缓存命中。
  • 降低序列化成本:A、AAAA、TXT 及 DNSSEC 记录在生成响应时可直接复制已编码数据。

对于 CNAME、NS、MX、SOA 等包含域名的记录,系统仍需解析,以便应用 DNS 名称压缩。Cloudflare 测试显示,这种数据布局让缓存查询延迟进一步降低约 5%;由于缓存写入使用可复用临时缓冲区,记录数据通常不需要反复扩容,缓存插入吞吐量单独提升了 13%。

影响解读:基础设施优化也是“算力效率”竞争

据介绍,这些优化已于 2026 年 5 月 18 日开始逐步部署,并于 7 月 6 日完成在所有相关服务中的推广。生产环境数据显示,实例内存使用量在不同阶段持续下降。对于普通用户而言,这类底层改动不会改变 DNS 的使用方式,但会体现在更低延迟、更高稳定性以及平台承载能力提升上。

这次案例值得 AI 与云基础设施行业关注。当前大量企业把性能提升寄托于新硬件、更大内存和更多服务器,但 Cloudflare 的实践说明,在超大规模系统里,数据结构设计本身就是资源效率的核心变量。当服务规模达到数千亿级缓存条目时,字节级优化会转化为 TB 级甚至百 TB 级的资源回收。

对中文科技读者来说,这也提供了一个观察云服务竞争的新角度:基础设施厂商不仅比拼节点覆盖、网络带宽和硬件采购能力,也在比拼工程细节、语言特性理解和系统级重构能力。尤其在 AI 推理、向量检索、缓存网关和实时数据服务越来越普遍的背景下,类似的内存布局优化、对象压缩和冷热数据分层,可能会成为降低成本、提升吞吐的重要手段。