Cloudflare优化DNS重建:速度翻倍内存降85%

Cloudflare优化DNS区域重建机制,速度翻倍且内存占用降低85%。通过引入局部构建与合并调度策略,Zone Builder服务器RAM使用量从最高79GB骤降至约7GB,显著缓解大规模部署下的资源压力。

Cloudflare 优化 DNS 区域重建机制:速度提升两倍,内存占用降低 85%

继通过改进任务服务器路由节省 100TB 内存后,Cloudflare 工程师再次对基础设施进行深度优化。最新的技术调整将 DNS 区域重建时间缩短了一半,同时使整个网络的内存使用量减少了 85%。

单次构建耗时降至3.3秒

DNS 区域包含了特定域名(如 tomshardware.com)的所有记录、设置及元数据。这些记录涵盖 IP 地址、主机名、文本行信息,以及网站和邮件服务器的 IP、子域配置、域名重定向规则、垃圾邮件控制策略和证书信息等。对于 Cloudflare 客户而言,当更新指向新 IP 的记录或修改域名设置时,相关变更需同步推送至全球数千台 DNS 服务器。

这一过程在大规模部署下极具挑战性。Cloudflare 庞大的 DNS 机队意味着任何变更都会产生显著的 RAM 消耗和网络流量压力。此外,确保所有服务器间的数据一致性至关重要,避免出现不同节点解析结果冲突的情况。部分托管域名的记录数量超过 2000 万条,这使得在内存中构建完整区域变得异常困难。

(图片来源:Cloudflare)

早在 2022 年,该公司已针对域名记录实施了增量更新策略,即仅写入并传播新的值。然而,涉及“设置”的变更更为复杂。例如,切换域名的通用 SSL 配置可能触发一系列关联记录的连锁更新。由于部分元数据密钥在多个区域共享,且往往缺乏明确的依赖关系标识,难以判断是否需要进行后续更改,因此设置更新通常仍需执行完整的安全构建流程。

为解决这一瓶颈,工程团队制定了一套精细化优化方案。首先,他们调整了内部软件架构,使区域变化事件能够携带原因说明及附加上下文信息。基于这些数据,系统可识别出特定类型的设置变更,从而执行更小、更短的局部构建。例如,顶部元数据更改(如 UniversalSSL)或域名服务器代码变更均可触发轻量级程序,仅在无法使用部分构建机制时才回退至完整构建。此外,拥有海量记录的域名现采用逐步更新策略。得益于上述措施,Zone Builder 服务器的 RAM 使用量从 50-79GB 骤降至接近 7GB,降幅达 85%。

(图片来源:Cloudflare)

第二阶段优化聚焦于调度器架构。团队将原本分离的规划与实施调度器合并为单一组件,并改进了其运行机制。新调度器具备检测同一区域内多个变更的能力,并能将其合并处理。在消息传递层面,Cloudflare 使用 Apache Kafka,团队调整了调度器在消息触发缓慢构建时的行为逻辑。

此前,由于 Kafka 要求消息按顺序推进,调度器必须等待当前任务完成才能处理下一条指令,导致请求队列堆积。现在,调度器会确认消息并立即运行接入的小型任务,实现了快速发出与一致节奏的处理模式。这种改变显著提升了并发处理能力,促使团队收紧了队列处理间隔。数据显示,单次构建的平均耗时已从 7.7 秒下降至 3.3 秒。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读