推文
@Zen_with_AI · 2026-10-11 13:25
小路带你看大厂架构--Cloudflare Workers 支持生产环境按需 profiling:火焰图直接定位 OOM 日志和聚合指标只能告诉你"慢了",定位不到是哪行函数在烧 CPU 或吃内存。Cloudflare 现在给 Workers 和 Durable Objects 加了按需 CPU/内存 profiling:在 Observability 页面点一下,或一条 CLI 命令,对生产环境的 Worker 采样几秒,直接生成可交互火焰图,还能导出 pprof 文件离线分析。 两个真实案例很有说服力。R2 绑定 Worker 的 CPU profile 显示 genericR2JsonReplacer 占 5% CPU 且在递归——JSON.stringify 每层节点都调 replacer,replacer 自己又遍历整棵树,深层值被重复处理多次,修掉后快了 2.7 倍。另一个 Worker P999 内存 133MB 顶着 128MB 上限频繁 OOM,heap profile 发现"以为已下线"的 Prometheus 插桩代码占了 66.7% 的分配,删干净后 P999 降到 118MB。 实现上为了不阻塞业务:只在 profiler 启停时持有 isolate 锁,采样期间(1ms 间隔)释放锁让请求继续跑。Durable Objects 更进一步,可以按名字指定 profile 某个 actor,请求会被路由到持有它的物理机。 当前限制:需手动触发、内存 profiler 只看得到窗口期内的分配。官方已在做 continuous profiling。 https://blog.cloudflare.com/workers-on-demand-profiling/
曝光 621 · 评论 2 · 点赞 6 · 书签 5 · 曝光/时 201.3788578768389