← 返回日报
精读 预计 11 分钟

How we run Firecracker VMs inside EC2 and start browsers in less than 1s

摘要

这篇文章介绍 Browser Use Cloud 的重构:用 Firecracker 为每个浏览器 session 提供独立轻量 VM,并运行在 AWS EC2(本身已是 VM)之上,形成嵌套虚拟化,以换取更快扩容和更低成本(从 $0.06/小时降到 $0.02/小时)。系统通过自研 control plane 实时调度 EC2 容器式节点,实现按需扩缩容。 在性能优化上,核心问题是 VM resume + Chromium 启动 + 嵌套 VM 带来的 page fault 开销。他们通过 2MB 大页、userfaultfd 预热热页、减少 page fault(约 91x 降低)、去除无关硬件检查、以及用 vsock 替代轮询通信,将 VM resume 到可用浏览器从 9.8s 降到 3.1s。 在 CPU 层面,通过 vCPU 运行时解绑再绑定核心、合理使用 hyperthread(避免 sibling core 竞争)、以及 real-time 优先级调度,让 Chromium 启动阶段的并发稳定性显著提升,并支持单机高密度部署。 在反检测方面,他们改造 headless Chromium,做底层 patch + 多真实 fingerprint 模拟,使无显示环境下的反检测通过率从 2% 提升到约 81%。 最终结果是:浏览器 cold start <400ms,端到端 p50 约 825ms、p99 1.35s,并且仍在尝试通过“在 Chromium 已启动状态下做 snapshot”进一步消除 Chromium 启动成本。

荐读理由

一个可复用的结论是:浏览器类 Agent 系统可以通过“VM snapshot + 控制平面调度 + 内存预取 + CPU 运行阶段分离”把启动时间压到亚秒级,并用 EC2 嵌套虚拟化换取更快扩容与更低闲置成本,这些取舍直接影响你是否该选择 metal、是否做预热池、以及如何设计执行沙箱。

Hacker News · 159 赞 · 100 评 讨论 → 阅读原文 →

这条对你有帮助吗?