部署

BrowserContext 内存与长期会话容量规划

用实测内存、准入控制、清理和回滚为长期浏览器会话规划 BrowserContext 容量。

文档中心

想直接进入 部署 文档吗?

这篇文章属于博客内容库。若你要步骤化配置、参考说明和持续更新,请直接进入对应 docs 分区。

BrowserContext 可以在共享浏览器启动成本的同时隔离存储和会话状态,但每个活动 context 都会消耗资源。浏览器版本、宿主镜像、页面类型和 profile 策略变化后,内存斜率也可能变化。容量规划应测量完整浏览器组,而不是沿用旧的 context 上限。

BrowserContext 只是在共享浏览器基础设施中隔离存储和会话状态,不是操作系统、进程或安全边界。如果需要这些边界,应使用独立浏览器或独立宿主。

BrowserContext 容量规划浏览器组在准入和清理 context 期间保留内存余量。浏览器组准入控制创建、关闭、恢复内存余量

测量完整浏览器组

记录浏览器版本、profile family、宿主类型、容器限制、路由、存储策略和代表性工作流。先测没有 context 时的基线,再在多个活动数量下记录创建、稳定运行、空闲和关闭结果。

重点不是一个通用数字,而是当前版本和工作流的容量曲线:基线内存、每个 context 的增量、并发创建延迟、关闭后的恢复,以及宿主剩余空间。页面、媒体、Worker、扩展、图形和网络都会改变曲线。

建立可重复工作负载

为文档、表单、图形页面和后台任务分别命名并记录 revision。每个流程都要说明如何开始、如何完成以及何时关闭 context。baseline 和 candidate 必须运行同一 revision。应用变化后先更新流程记录。

读取生命周期

创建、稳定运行、空闲和关闭具有不同资源形态。快速创建大量 context 可能需要创建限制,长期会话则需要数小时级恢复观察。关闭后检查资源是否回到预期范围,不要只统计成功启动数量。

管理准入和回滚

准入上限应包含暂停点、恢复点和负责人。内存压力出现时先暂停新任务,让现有任务完成并释放资源。保留上一组浏览器和 profile,必要时按 browser group 回滚。

区分工作负载

只有当测量结果显示边界明显不同,才拆分媒体、图形或移动工作负载。每个 group 需要名称、浏览器和 profile、宿主类型、路由与存储策略、上限、恢复规则和负责人。

容量规划链接

Scaling BrowserContexts 讨论隔离和资源取舍。Chromium 151 BrowserContext Memory Planning 介绍版本相关的内存测量。Browser Release Validation 介绍候选版本推广流程。

设置准入边界

容量上限必须留下恢复空间。宿主接近系统限制后才暂停,通常已经没有足够空间完成现有任务。记录谁能暂停新任务、队列如何处理、何时恢复接入。隐藏重试循环会在压力下继续创建 context,应避免这种做法。

浏览器版本、profile 和 context 策略应作为一个发布单元。一次实验只改变一个输入,并保留已接受的版本用于回滚。

把清理纳入容量

创建只是生命周期的一半。关闭 context 后,资源应按发布记录预期释放,浏览器组应回到恢复范围。检查关闭延迟和关闭后的内存,不只检查启动是否成功。

如果清理跟不上,先暂停准入,再检查队列、页面工作负载、下载、媒体、Worker 和扩展。不要用提高宿主限制掩盖生命周期问题。长期会话还需要数小时级观察窗口,因为短测试可能看不到缓慢累积。

相关内容

Scaling BrowserContexts 讨论隔离和资源取舍。Chromium 151 BrowserContext Memory Planning 介绍版本相关的内存测量。Browser Release Validation 介绍候选版本推广流程。

验收清单

  • 在多个活动数量下测量完整浏览器组。
  • 记录创建、稳定、空闲、关闭和恢复。
  • 设置带有明确余量和负责人的准入上限。
  • 只有测量结果支持时才拆分工作负载组。
  • 浏览器、profile、宿主或图形变化后重新验证。
  • 保留上一组浏览器和 profile 以便回滚。
#BrowserContext#浏览器内存#并发#准入控制#性能#容量规划

让 BotBrowser 从研究走向生产

先用这些指南理解模型,再进入跨平台验证、隔离上下文和面向规模化的浏览器部署。