flo*_*ock 1 linux node.js express docker puppeteer
我正在运行一个express.js应用程序,该应用程序用作REST api。一个端点启动puppeteer,并通过几个过程测试我的网站。
启动应用程序并持续使用端点后,我的docker容器每小时都会耗尽内存,如下所示。
首先,我以为我的puppeteer / headless chrome中存在内存泄漏,但是随后我从进程中监视了内存使用情况,没有可见的内存泄漏,您可以在这里看到:
0.00 Mb COMMAND
384.67 Mb /var/express/node_modules/puppeteer/.local
157.41 Mb node /var/express/bin/www
101.76 Mb node /usr/local/bin/pm2
4.34 Mb /var/express/node_modules/puppeteer/.local
1.06 Mb ps
0.65 Mb bash
0.65 Mb bash
0.31 Mb cut
0.31 Mb cut
0.13 Mb dumb
Run Code Online (Sandbox Code Playgroud)
现在,我没有想法可能是什么问题了。有谁知道RAM消耗可能来自何处?
您需要实时监控活动。
我们没有代码,因此我们甚至不知道发生了什么。但是,您可以使用比或更高的工具,例如htop,gtop,netdata和其他工具。topps
登录pm2可能还会告诉您有关事情的更多信息。在这种情况下,日志将比流程管理器拥有更多的数据。确保彻底调查日志,以查看脚本是否负责,是否抛出错误,
pm2 logs
Run Code Online (Sandbox Code Playgroud)
尽早计算成本并做好相应准备,
无论自动化任务是否成功,请确保正确使用browser.close()以确保其使用的资源免费。大多数时候,我们忘记了这么小的事情,这花费了我们。
如果您有产生新进程的进程,并且没有实现好的信号处理程序来捕获子信号并在进程应停止时停止子进程等,则可以使用dumb-init或tini之类的东西。
阅读更多关于此SO答案的信息。
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |