木偶操作员在几个小时后放慢速度

Elm*_*Gun 6 node.js puppeteer

我的节点应用程序出现了一些问题,并且在我的 EC2 服务器上运行几个小时后它变慢了。

我的应用程序使用 puppeteer、bull 和 mongodb,我有一个 Bull 队列,我的应用程序读取该队列以进行处理,一旦作业完成,它将结果写入 mongodb,因此此过程将一直运行直到队列完成(7000 个作业)。当我启动应用程序 puppeteer 大约需要 5-10 秒来返回结果时,进程运行的时间越长它变得越慢,大约 2-3 小时后它开始需要 30-50 秒来运行一项工作。如果我停止并开始该过程,作业将返回到最初的 5-10 秒速度 10 分钟,直到返回到 30-50 秒。

我检查了内存,它似乎没有使用过多的内存,它一直保持在同一水平。我还检查了 CPU,我认为它也没有遇到任何问题。

关于什么可能导致插槽下降的任何想法?我注意到当应用程序启动时,nodejs 循环延迟在几个小时后为 0.5ms,大约在 1-2ms 范围内。调试这个的最好方法是什么?

非常感谢您的帮助。

谢谢

bro*_*ess 1

如果您还没有关闭并重新打开每个会话的浏览器,您将需要这样做。这是一项棘手的工作,可能很难管理,因为您需要了解木偶操作者的一些内部工作原理,以确保一切都“正确连接”。我在这里维护一个docker 镜像,并且每个会话生成一个干净的 Chrome 实例的代码在这里。(死链接)