推文
@Zen_with_AI · 2026-10-09 23:45
小路继续带您看大厂系统架构-- Cloudflare 为 Workers 和 Durable Objects 推出了按需 CPU 与内存性能分析功能,可在生产环境中直接采集。 此前只能在本地用 Chrome DevTools 分析,无法反映线上真实情况。现在可以直接对生产环境中正在运行的实例发起分析:CPU 分析使用 V8 采样器,每 1 毫秒采集一次调用栈;内存分析记录堆分配情况。结果可下载为 pprof 文件,也可在控制台中以交互式火焰图查看,矩形越宽表示该函数占用资源越多。 分析过程中不需要停机:只有在启动和停止分析器时才会短暂加锁,采样期间锁会释放,正常请求不受影响。也不会另起新实例,采集的就是线上正在处理的实例;Durable Objects 还可以按名称指定分析某一个对象,系统会把请求路由到实际运行它的服务器。 Cloudflare 内部已用该功能定位到两个实例问题:R2 绑定 Worker 中的 genericR2JsonReplacer 函数存在重复递归计算,修复后速度提升 2.7 倍;另一个 Worker 的 P999(99.9% 分位)内存占用达 133MB,超过 128MB 上限导致频繁报错,堆分析显示已停用的 Prometheus 代码仍占 66.7% 的内存分配,清理后 P999 降至 118MB。 目前有两个限制:需要手动启动,可能错过问题发生的时间段;内存分析只能看到分析窗口内的分配情况。持续分析功能正在开发中。 TypeScript 项目需要开启 source maps,否则火焰图中显示的是混淆后的函数名,难以辨认。 https://blog.cloudflare.com/workers-on-demand-profiling/
曝光 159 · 评论 1 · 点赞 2 · 书签 1