部署
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 回收 | 中 | 中 |
| 每核心实例限制 | 高 | 低 |
开始使用
- 从 GitHub 下载 BotBrowser
- 将配置文件存储在本地快速存储上
- 根据服务器资源设置内存限制和实例上限
- 监控使用情况并相应调整并发数
#performance#optimization#speed#deployment#production