我目前正在虚拟服务器上运行大型rails应用程序。我的设置使用Unicorn服务Rails应用程序,nginx作为前面的代理服务器。
偶尔我会收到有关我的CPU使用量已经长时间挂钩的通知。然后我登录并使用htop来找到杀死它的行为不当的过程。那些行为不端的过程似乎总是独角兽的工人。
我想知道的是,如果有办法设置monit,或者上帝监视独角兽的这些“子进程”,并且如果它们长时间处于高CPU使用状态,则将其杀死。我知道如何监视unicorn主进程,因为它将进程id写入PID文件。但它永远不是主过程,只有孩子处理行为不端。
答案 0 :(得分:2)
您可能想尝试此处列出的流程: Where Unicorns go to die: Watching unicorn workers with monit
我还没有这样做,但我很快就会试一试。
编辑:效果非常好。我现在正在使用那里的方法。
答案 1 :(得分:1)
我用上帝监视我的独角兽(听起来太酷了)。我一直在使用与GitHub相同的配置使用概述here。在第二个要点中,您将看到一个用于监控独角兽工作者的自定义脚本。这有点hacky,但效果很好。我相信这样的事情在某种程度上要融入上帝。但我有一段时间没有听到任何关于此事的消息。