Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails应用程序(mod_Rails)每隔几个小时就会挂起一次_Ruby On Rails_Passenger - Fatal编程技术网

Ruby on rails Rails应用程序(mod_Rails)每隔几个小时就会挂起一次

Ruby on rails Rails应用程序(mod_Rails)每隔几个小时就会挂起一次,ruby-on-rails,passenger,Ruby On Rails,Passenger,我正在通过Phusion Passenger(mod_Rails)运行Rails应用程序,该应用程序将平稳运行一段时间,然后突然慢到爬行(每小时一个或两个请求)并变得无响应。在整个过程中,CPU的使用率很低,尽管我不确定内存 有人知道我应该从哪里开始诊断/修复问题吗 更新:偶尔重新启动应用程序确实可以解决问题,尽管我正在寻找一个更长期的解决方案。内存使用逐渐增加(最初每个实例约30mb,一小时后变为40mb,崩溃时达到60或70mb)。如果重新启动应用程序可以解决问题,查看其资源使用情况将是一个

我正在通过Phusion Passenger(mod_Rails)运行Rails应用程序,该应用程序将平稳运行一段时间,然后突然慢到爬行(每小时一个或两个请求)并变得无响应。在整个过程中,CPU的使用率很低,尽管我不确定内存

有人知道我应该从哪里开始诊断/修复问题吗


更新:偶尔重新启动应用程序确实可以解决问题,尽管我正在寻找一个更长期的解决方案。内存使用逐渐增加(最初每个实例约30mb,一小时后变为40mb,崩溃时达到60或70mb)。

如果重新启动应用程序可以解决问题,查看其资源使用情况将是一个很好的开始

New Relic可以显示组合内存使用情况。Engine Yard推荐使用Rack::Bug、MemoryLogic或Oink等工具。这里有一个很好的例子,你可能会发现它很有用。

听起来你好像有某种内存泄漏。如果您想解决这个问题,可以尝试将PassengerMaxRequests设置为稍低一点的值,直到您弄清楚发生了什么

这将在您的实例服务了一定数量的请求之后单独重新启动它们。你可能不得不摆弄它来找到它们在锁定前自动重新启动的最佳位置

其他建议包括: -检查你的插件/gems,确保它们是最新的 -检查占用大量内存的繁重操作和请求(NewRelic非常适合这样做) -您可能需要考虑切换到REE,因为它有更好的垃圾收集< /P>
最后,您可能希望设置一个cron作业,该作业查看当前运行的乘客实例,并在它们超过某个内存阈值时杀死它们。乘客可以重新启动它们。

谢谢:这篇文章真的很有帮助。