【Rust日报】2026-09-16 Cloudflare 优化 DNS 缓存节省约 100TB 内存

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

Cloudflare优化DNS缓存内存布局,单条占用降低超50%,全网节省约100TB内存,插入吞吐提升43%,查询延迟降低19%。另有文章总结Tokio应用调试与压测原则,强调低延迟需拆分公平、吞吐需批处理。Cargo的trim-paths征集测试,可清洗产物路径并生成还原文件。终端工具mew可显示项目与系统信息。

🔎

延伸解读

内存优化为何能节省百TB级内存

Cloudflare 的 DNS 缓存全网任意时刻有超过 2500 亿条条目,每条多占 1 字节就会多耗约 250 GB 内存。通过五轮内存布局调整,单条 footprint 下降超过 50%,最终释放约 100 TB 内存,相当于 130 台 Gen 13 服务器的容量。这凸显了在超大规模下,微观优化能产生宏观收益。

Tokio 应用调优:延迟与吞吐的权衡

文章指出,低延迟需要拆分与公平,例如对 pipeline 连接在连续立即可读后适当 yield,避免一次 poll 吃完整条流水线;高吞吐则需要批处理,例如将大量细碎的 tokio::fs 或 spawn_blocking 合并成更大的阻塞段。同时要关注全局阻塞池与任务队列的争用,以及 worker 上持有高竞争 mutex 的风险。

Cargo trim-paths 的测试重点与待决问题

trim-paths 通过 profile 设置控制产物中路径的清洗方式,近期工作包括更明确、可逆的 remap 规则,以及为最终产物生成 unremap 伴随文件(.trim-paths.jsonl)以还原调试信息。目前仍在讨论 workspace 成员路径裁剪后是保持相对路径还是加虚拟前缀,社区可在实际工程中试用并反馈。

mew 工具的使用场景与安装方式

mew 是用 Rust 写的小型终端工具,在 git 仓库内会显示分支与 git 状态、项目语言与工具链、代码行数与覆盖率、CPU/内存/磁盘与 uptime 等信息;在仓库外则退化为系统信息面板。它支持 shell hook,可在进入 git worktree 时自动展示,且无常驻 daemon。可通过 cargo install mew-cli 安装,AUR 有 mew-bin,GitHub Releases 提供预编译二进制。

Q&A

Cloudflare 对 DNS 缓存做了哪些内存优化,效果如何?

Cloudflare 对支撑 1.1.1.1 等服务的 Big Pineapple DNS 缓存进行了五轮内存布局优化,单条缓存条目内存占用下降超过 50%(约 56%),全网释放约 100TB 内存,插入吞吐提升约 43%,查询延迟下降约 19%。

Cloudflare 优化 DNS 缓存时具体用了哪些技术手段?

主要手段包括:因缓存写入后不再修改,将 Vec/String 替换为 Box<[T]>/Box<str>,去掉 capacity 字段及多余预留;把 answer、authority、additional 三段合并为一条列表并用 u16 偏移划分;以及围绕 DNS record 数据的 enum 尺寸与字段布局进一步压缩。

编写更快 Tokio 应用有哪些核心原则?

核心原则包括:先确认是否真有问题,并从真实业务指标反推;为低延迟做拆分与公平(如对 pipeline 连接在连续立即可读后适当 yield);为吞吐做批处理(如合并细碎的 tokio::fs / spawn_blocking 为更大的阻塞段,必要时用专用 OS 线程)。同时需关注全局阻塞池与全局任务队列的争用,以及 worker 上持有高竞争 mutex 的风险。

Cargo 的 trim-paths 功能是什么,目前进展如何?

trim-paths(RFC 3127)是 Cargo 通过 profile 设置控制产物中路径清洗方式的能力。近期工作包括更明确、可逆的 remap 规则,以及为最终产物生成 unremap 伴随文件(.trim-paths.jsonl)以方便还原调试信息。目前仍在讨论 workspace 成员路径裁剪后是保持相对路径还是加虚拟前缀,并征集社区测试反馈。

mew 这个终端工具能做什么?如何安装?

mew 是用 Rust 写的终端工具,用于一眼查看当前项目与系统信息。在 git 仓库内显示分支与 git 状态、项目语言与工具链、代码行数与覆盖率、CPU/内存/磁盘与 uptime、日期时间与时区;在仓库外则退化为系统信息面板。支持 shell hook 在进入 git worktree 时自动展示,无常驻 daemon。安装方式:cargo install mew-cli,AUR 有 mew-bin,GitHub Releases 提供预编译二进制。

Cloudflare 的 DNS 缓存优化在生产环境是如何逐步上线的?

生产 rollout 从 2026-05-18 开始,到 2026-07-06 覆盖全部相关服务,驻留内存呈阶梯下降。

🏷️

标签

➡️

继续阅读