最近部署了一个项目,发现 passenger 在一段时间后会把内存占用完,并且长时间不释放,我查了一下 passenger 的官方文档,上面说明 在没有请求的情况下,5 分钟后会关闭进程,但我仔细观察了一下,即使没有请求,也不会释放,求大神解答一下,并且 passenger 的内存持续增加 这个是正常的吗?是因为项目代码中问题导致内存泄漏引起的吗?多谢
非常正常,只要创建新对象内存就会涨,解决方法就是限制新对象的增长,还有定期重启服务(passenger 中是 xx 个 request 后重启)
官方文档上有这样一句说明:By default, Passenger shuts down processes that haven't handled traffic for 5 minutes (300 seconds). 但是我看我的服务器 passenger 进程已经 超过 10 分钟 还没有关掉,期间我没有前端的请求
"That is, if an application process hasn't received any traffic after the given number of seconds, then it will be shutdown in order to conserve memory." 这一段说的是 application process, passenger 的 core process 并不会关闭。
ok 多谢