我有一个 NodeJS 应用程序,它包装了一个大型的模糊 JavaScript 文件并利用它来运行计算。问题是 JavaScript 文件有内存泄漏,需要相当频繁地重新启动才能清除内存。目前,我正在使用 systemd 在进程达到特定内存使用量时终止并重新启动该进程,虽然这足够有效......但它并不理想。我已经将许多其他应用程序移入 docker,因为太棒了,我想尝试同时解决这两个任务,但我正在努力寻找一种优雅的方式来实现这一点。
理想情况下,我希望应用程序在超过某个内存阈值并处于空闲状态时能够优雅无缝地重新启动。我浏览了 docker 网站,但找不到任何具体支持这种情况的内容。PM2 确实允许这样做,但 Stack Overflow(和一些博客)似乎普遍认为将它们混合在一起 99.99% 的时间都是一个坏主意,但我想尝试进行健全性检查以确保我没有想太多。