如何防止JRuby应用程序冻结linux(CentOS 5.4)服务器?

如何防止JRuby应用程序冻结linux(CentOS 5.4)服务器?

一个简单的 jruby 进程冻结了我们的 Amazon EC2 Cent OS 5.4 实例。要恢复它,我们必须从 Amazon Mgmt Console 重新启动整个 VM。

Is there way to prevent an app from freezing the OS? 

我们如何找出导致操作系统无响应的原因?

/var/log 文件夹是否包含任何有用的日志?谢谢。

2011 年 12 月 17 日更新:我们发现这种情况的发生是因为为运行 rake 任务 - delayed_job 的 jruby 进程分配了 2048m 内存。将内存减少到 512m 即可解决该问题。看来 2048m 的 delayed_job/JRuby 似乎是致命的组合。

答案1

如果降低内存限制有助于解决这个问题,那么您可能正在导致机器开始交换。交换是破坏任何机器性能的万无一失的方法,我想在虚拟机上情况会更糟。交换很容易以一种看起来完全冻结的方式杀死机器,因为您无法登录或以任何实际方式与其交互(好吧,ping 通常有效,但仅此而已)。

相关内容