【发布时间】:2019-11-07 20:04:09
【问题描述】:
我们已经尝试使用 puppeteer 对我们的网站进行负载测试,这太棒了!但没有成功。
我们使用了巨大的 AWS 机器(我们使用了 c5.metal),但仍然无法运行数百个浏览器(约 200 个)。我们开始收到与超时有关的错误。
顺便说一句:在同一时刻,我们在计算机上进行了尝试,它运行良好,因此网站不是问题/
我的问题是,如果有人知道一种更好的方法来运行它的更轻版本的东西,可以帮助在 AWS 机器上运行更多的浏览器。
注意:我们的进程使用 nodejs 子进程,所以每个进程只运行 5 个浏览器
【问题讨论】:
-
您是否以无头模式运行它们?您是打开多个浏览器还是只打开多个页面或标签?
-
无头模式。我在 linux 操作系统上运行它。我使用多个浏览器..我还尝试在每个浏览器上使用几页 (5),但结果相同..
-
它导航到的网站有多大?我不认为一个内核可以并行运行多个页面,特别是如果它导航的网站有很多 JS 和大型 DOM。
-
我使用了 96 核机器。该网站不是很重,但它使用 websocket 并且可以实时工作。所以为了运行 10K 浏览器,我需要 ~10K 内核(1K 机器)?没有意义..普通的4核电脑可以轻松运行多个浏览器和页面..使用headless时应该更多,因为没有GUI
-
在普通计算机上,您通常一次只能显示/导航一页。您是否禁用了页面渲染以加快速度?我认为您可以采取其他技巧来加快速度。
标签: node.js google-chrome puppeteer load-testing google-chrome-headless