返回博客
部署

BotBrowser 生产环境性能优化

大规模运行 BotBrowser 时优化内存、CPU 和吞吐量的实用技巧。

概述

运行数十或数百个 BotBrowser 实例需要仔细的资源管理。本指南涵盖生产部署的实用优化。

配置文件加载

将配置文件存储在快速本地存储而非网络挂载卷上:

cp /mnt/nfs/profiles/*.enc /opt/profiles/
chrome --bot-profile="/opt/profiles/profile.enc"

随机选择使用 --bot-profile-dir="/opt/profiles/"

内存管理

每个 Chrome 实例通常使用 200-500 MB 内存。对于轻量任务,限制 V8 堆:

chrome --bot-profile="/path/to/profile.enc" \
       --js-flags="--max-old-space-size=256"

及时关闭页面,并在设定次数后重启浏览器进程(如每 50 个任务)以防止内存积累:

const page = await browser.newPage();
await page.goto('https://example.com');
// ... 执行任务 ...
await page.close(); // 立即释放内存

CPU 优化

禁用不需要的功能:

chrome --bot-profile="/path/to/profile.enc" \
       --disable-background-timer-throttling \
       --disable-renderer-backgrounding \
       --disable-component-update

限制每个 CPU 核心的并发实例为 2-4 个。

网络优化

阻止不必要的资源以减少带宽:

await page.setRequestInterception(true);
page.on('request', (req) => {
  const type = req.resourceType();
  if (['image', 'media', 'font'].includes(type)) {
    req.abort();
  } else {
    req.continue();
  }
});

监控

使用 BotBrowser 内部日志进行调试:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-internal --v=1

快速参考

优化项影响复杂度
本地配置文件存储
JS 堆限制
无头模式
资源拦截
Worker 回收
每核心实例限制

开始使用

  1. GitHub 下载 BotBrowser
  2. 将配置文件存储在本地快速存储上
  3. 根据服务器资源设置内存限制和实例上限
  4. 监控使用情况并相应调整并发数
#performance#optimization#speed#deployment#production