页面长时间打开后 Puppeteer 内存泄漏
Puppetter memory leak after page open for long
我的脚本打开 60 个带代理的无头 chrome 浏览器,每个浏览器一页,并在我的网站上写一段文字,以便在它们收到 firebase 命令时进行测试。它工作正常,但 2 小时后它们开始变慢,然后它们无法再执行发送的命令。我在我的 chorme 中使用了这些标志:
'--proxy-server=downstream-proxy-address',
'--proxy-server='+myip,
'--no-sandbox',
'--unlimited-storage',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--disable-gpu',
'--window-size=1920x1080',
我尝试在 10 分钟后关闭每个浏览器并重新打开,但它不起作用。解决这个问题的最佳方案是什么?
我遇到了同样的问题。后来确定是由于脚本中没有关闭浏览器所致。如果您正在捕获异常,请在 finally 块中添加 await browser.close() ,如下所示
try{
var browser = await puppeteer.launch({
headless: true,
devtools: false,
args: [
'--no-sandbox','--disable-setuid-sandbox','--ignore-certificate-errors'],
ignoreDefaultArgs: ['--enable-automation','--no-first-run'],
executablePath: '/usr/bin/google-chrome'
});
var page = await browser.newPage();
await page.goto(url, {timeout: 20000});
} catch (err) {
console.log(err);
response.status(500).send('ERROR: ' + err)
} finally{
await browser.close()
}
我的脚本打开 60 个带代理的无头 chrome 浏览器,每个浏览器一页,并在我的网站上写一段文字,以便在它们收到 firebase 命令时进行测试。它工作正常,但 2 小时后它们开始变慢,然后它们无法再执行发送的命令。我在我的 chorme 中使用了这些标志:
'--proxy-server=downstream-proxy-address',
'--proxy-server='+myip,
'--no-sandbox',
'--unlimited-storage',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--disable-gpu',
'--window-size=1920x1080',
我尝试在 10 分钟后关闭每个浏览器并重新打开,但它不起作用。解决这个问题的最佳方案是什么?
我遇到了同样的问题。后来确定是由于脚本中没有关闭浏览器所致。如果您正在捕获异常,请在 finally 块中添加 await browser.close() ,如下所示
try{
var browser = await puppeteer.launch({
headless: true,
devtools: false,
args: [
'--no-sandbox','--disable-setuid-sandbox','--ignore-certificate-errors'],
ignoreDefaultArgs: ['--enable-automation','--no-first-run'],
executablePath: '/usr/bin/google-chrome'
});
var page = await browser.newPage();
await page.goto(url, {timeout: 20000});
} catch (err) {
console.log(err);
response.status(500).send('ERROR: ' + err)
} finally{
await browser.close()
}