这个问题并不经常发生,但它肯定存在,我不确定从哪里开始。我在 /var/log/ 中搜索了 mongrel PID,包含它们的唯一消息是这些:
Jun 7 07:46:24 staging kernel: 4gb seg fixup, process mongrel_rails (pid 29498), cs:ip 73:00937a5c
这与 Xen 的特定版本有关libc
,但并不严重,并且进程仍在运行,并且这些消息会累积在kern.log
我实际上不仅在寻找具体的解决方案(可能无法从上述描述中提供),而且还在寻找有关如何设置监控或调查此类情况的任何建议。
答案1
这不是确切的答案,但你必须使用 mongrel 吗?我改用 apache + Passenger,从此再也没有回头。
答案2
我们用纳吉奥斯监控我们的杂种(以及数百种其他服务)。
它只是检查以确保每个所需端口上都有 mongrel 进程在运行。如果没有,它会重新启动它们。
答案3
当 xen domU 中未安装 libc6-xen 时,我收到这些消息。因此请验证您是否已安装该软件包...
apt-get install libc6-xen
当使用 libc 的另一个变体时,它仍能工作,但速度会变慢,因为内核必须捕获错误的操作并执行正确的操作。引用的消息正是在这种情况下由内核生成的。
所以你猜对了,这并不能解释为什么 mongrel 会停止。检查 mongrel 的文档以启用调试日志(如果有)。否则,你可以一直尝试跟踪该过程,直到它失败...日志的末尾会提示你失败的原因,也许你会找到原因。