【问题标题】:Puppeteer performance leaksPuppeteer 性能泄漏
【发布时间】:2019-08-01 15:42:25
【问题描述】:

我正在使用 puppeteer 和 puppeteer-cluster 对收到的 HTML 进行屏幕截图。为了“绕过”Node.js 的单线程处理,我使用了几个 Docker 容器。

问题在于它随机延长了渲染时间——一旦相同的 HTML 在 200 毫秒内渲染,下一次(相同的配置、环境等)它是 8.2 秒。 Node 的日志不包含任何错误。

有解决办法吗?

【问题讨论】:

    标签: node.js puppeteer puppeteer-cluster


    【解决方案1】:

    没有理由“绕过 Node.js 的单线程处理”,因为大多数 puppeteer 操作都是异步执行的。这听起来像是你在解决一个实际上并不存在的问题。

    当您在脚本之外使用 docker 时,进程变慢(延长渲染时间)也是有道理的,因为除了脚本之外,操作系统还需要运行 docker。

    检查系统资源

    我假设您的系统除了每个容器中的多个 Chrome 实例外,还不能运行多个 docker 容器。 Monitor CPU and memory 看看您是否遇到任何限制。

    【讨论】:

    • 别这么认为,CPU 使用率在峰值时高达 60%。另外maxConcurrency等于4还是128在处理时间上没有区别(我特意选了两个“极端”值)。
    • @KRiSTiN 如果不查看有关您的系统的任何信息(CPU、内存等),很难提供帮助。此外,最好知道系统的平均负载。
    猜你喜欢
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多