开发者生态
morning
Cloudflare 测试通过缓存转码来减少存储需求
2026-09-23
1 阅读
约4分钟阅读
作者:Renato Losio
字号:
Cloudflare 最近介绍了一个名为“ 缓存转码 "”(Cache Transcoding)的原型。该技术会在将符合条件的缓存内容(主要是未压缩的文本,如 HTML、JSON、CSS 和 JavaScript)存储到磁盘之前使用 Zstandard 对其进行压缩。据这家超大规模云服务提供商估计,该方法可以额外提供 PB 级的有效缓存容量,不过还需要进行更广泛的测试。 按照这篇文章的说法,所需进行的额外处理工作量相对比较小,因为内容只需在进入缓存时压缩一次,并在提供服务时进行解压。压缩使符合条件的内容减少了约 64%,从而使现有的服务器能够存储更多的数据,并减少了在数据中心之间传输的数据量。 为了实现这一目标,Cloudflare 采用了 Zstandard "——这是 Facebook 为实时应用开发的无损压缩算法——并结合了其基于 Rust 的代理框架 Pingora "。 Aashi 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% 的内容到达时并未压缩,而且可以有效压缩。 图片来源:Cloudflare 博客 虽然一些从业者对将“转码”一词用于编码/解码方法提出质疑,但 Hacker News " 上的其他用户则在讨论压缩选项。鉴于 Cloudflare 最初考虑将转码限制在热门内容上,用户 MayeulC 写道: 真奇怪,如果目的是在解码过程中节省 CPU 时间,我会选择压缩冷内容。 用户 CodesInChaos 则问道: 我不明白这会对范围请求产生什么影响。如果不进行压缩,这些请求可以通过从缓存中读取完整文件的相关部分轻松满足。但它们现在是如何处理的呢? 他们分别在启用和禁用分层缓存的情况下进行了测试,为的是度量压缩对本地缓存以及缓存层之间数据传输的影响。该原型仍然在开发当中,他们计划针对不同的压缩级别、内容类型、对象大小和缓存场景做进一步测试。 原文链接: https://www.infoq.com/news/2026/09/cloudflare-cache-transcoding/ "
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱