← 文章 / 云原生与基础设施
InfoQ 5小时前 · 2026-09-23 10:12:08 · 4 阅读

Cloudflare 测试通过缓存转码来减少存储需求

Cloudflare 最近介绍了一个名为“缓存转码”(Cache Transcoding)的原型。该技术会在将符合条件的缓存内容(主要是未压缩的文本,如 HTML、JSON、CSS 和 JavaScript)存储到磁盘之前使用 Zstandard 对其进行压缩。据这家超大规模云服务提供商估计,该方法可以额外提供 PB 级的有效缓存容量,不过还需要进行更广泛的测试。

按照这篇文章的说法,所需进行的额外处理工作量相对比较小,因为内容只需在进入缓存时压缩一次,并在提供服务时进行解压。压缩使符合条件的内容减少了约 64%,从而使现有的服务器能够存储更多的数据,并减少了在数据中心之间传输的数据量。

为了实现这一目标,Cloudflare 采用了 Zstandard——这是 Facebook 为实时应用开发的无损压缩算法——并结合了其基于 Rust 的代理框架 PingoraAashi Patel 写道:

CPU 性能的微小提升,就能为 Cloudflare 带来 PB 级的有效缓存容量,并减少数据中心之间的数据传输量。编码开销仅在资源首次进入缓存时产生一次,而后续每次复用该资源时,都能持续带来存储与带宽成本的节省。

Cloudflare 的缓存转码功能仅对满足以下条件的未压缩响应进行压缩:包含可压缩文本、请求成功返回且大小不低于 4 KiB。该功能会排除范围请求、预压缩内容、二进制内容,以及大小未知的响应。该阈值既可以避免对大量的小对象进行处理,又仅牺牲了约 1% 的符合条件的数据。此外,该阈值和 Zstandard 的压缩级别均可以根据 CPU 与存储空间的权衡进行调整。Patel 补充道:

转码并不意味着对所有内容进行压缩。图像、视频和字体通常已经压缩过。在我们的流量样本中,这类媒体内容占请求总数的 21.4%,却占总字节数的 63.3%。对其再次压缩只会白白消耗 CPU 资源。

据 Cloudflare 称,HTML、JSON、CSS 和 JavaScript 等可压缩文本占请求总数的 67.3%,占总字节数的 22.3%。其中,约 71% 的内容到达时并未压缩,而且可以有效压缩。

图片

原始来源: InfoQ

评论 (0)