我正在运行一个可以正常运行几个小时的Node.JS Web应用程序,然后在某个随机时间点,V8堆突然突然无缘无故地开始快速增长,大约40分钟后,这种增长通常会停止并且该过程继续正常运行。
我正在用nodetime监视它:
这可能是什么原因?是程序中的内存泄漏,还是V8中的错误?
无法通过您提供的内容知道问题所在,但是有99.99%的机会该问题在代码内部/可修复。
我发现的用于调试Node.js内存问题的最佳工具是https://github.com/bnoordhuis/node-heapdump,您可以将其设置为转储一定的时间间隔,或者默认情况下它监听USR2信号,因此您可以发送kill -s USR2
到进程的pid并获取快照。
然后,您可以使用Chrome Inspector将堆加载到分析工具中,然后开始检查。
我通常发现问题围绕外部请求保留的时间过长。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句