上帝与Monit [关闭]

Posted

技术标签:

【中文标题】上帝与Monit [关闭]【英文标题】:God vs. Monit for process monitoring [closed] 【发布时间】:2010-10-20 13:42:26 【问题描述】:

哪个用于过程监控?为什么?

【问题讨论】:

【参考方案1】:

上帝的内存泄漏非常严重,所以我选择了 Monit 作为我的 VPS。 Monit 经常以大约 2MB 的 RAM 运行,而我在 Ruby 1.8.6 上运行的上帝安装在大约 36 小时内泄漏到大约 60MB 的 RAM。我不想监控我的系统监控工具,所以我放弃了God并转到Monit并且绝对没有问题。

【讨论】:

有谁知道这个问题在 Ruby 1.8.7 中是否仍然存在?我真的很喜欢上帝的“Rubyness”,无论如何我想试一试。 我不确定,如果你有兴趣的话,我会说记住它并试一试。我不反对上帝,我很喜欢它,我只是无法忍受泄漏。它的使用很好,对我来说不实用。 God 内存泄漏已在大约一年前修复(测试blog.vortorus.net/2009/12/06/…) +1 表示同时使用这两种方法并花时间分享您的体验 距离上次发帖已经很久了(2年)。难道大神还是有好的解决办法。大神进步了吗?它有内存泄漏问题吗?这是一个不错的选择吗?【参考方案2】:

这两种解决方案都很好,它们都各有利弊。

上帝的配置文件是用 Ruby 编写的,所以你基本上可以做 Ruby 允许你做的所有事情,而且它有很多东西。 Monit 必须使用自己的语法进行配置,通常可以,但限制性更强。无论如何,您也可以使用 Ruby 生成监控配置(作为部署策略的一部分)。

另外,monit 使用的资源更少,因此如果您使用 VPS 或只是没有任何备用内存,那么 monit 可能是更好的选择。就个人而言,我更喜欢上帝,因为它更具可配置性。

这是一个非常好的screencast on god。 cmets 中也有很多对此截屏视频的反馈。

【讨论】:

是的,God 的 Ruby 配置文件(以及内置的 XMPP 通知程序)对我来说特别诱人。而且由于我在自己的专用服务器上,我想我会尝试一下。 在使用上帝之前一定要做好功课。我和我认识的其他几个运行主要 Rails 应用程序的人一样,都遇到过一些可靠性问题。上帝做得很好的一件事就是将自己推销为一个神奇的、“简单的”银弹。这远非事实。 看来你不能让一个进程依赖于另一个进程? - 这是一个重大问题。如果你想在你的 web 应用程序之前启动你的数据库,你不能!它将尝试同时启动两者。我很惊讶没有人提到这一点。 另一个有用的知识;上帝需要root权限,和cn内核模块。这些在许多动态云托管服务(如 heroku 或 dotcloud)上不可用。【参考方案3】:

上帝有很多问题,包括:

    它会泄漏内存 停止和重新启动进程时遇到问题

我在http://blog.bradgessler.com/use-monit-with-rails-not-god写了一篇关于它的文章

monit 唯一真正的问题(如果有问题的话)是,如果您运行大型集群,配置文件可能会有点冗长,但这可以通过模板系统解决。

【讨论】:

我们已经在我们的集群上运行 monit 三个多月了,这是我们做出的最好的系统管理员决策之一。自从我们打开它以来,Monit 仍然没有崩溃或泄漏内存。如果你经历过我对上帝的同样挫败感并且对此感到愤怒,我要求你提供一些链接到我的博客文章,这样当其他人谷歌“上帝”或“上帝过程监视器”时,他们可以用我的咆哮来警告他们。 看起来一位慷慨的贡献者帮助(可能)消除了上帝的内存泄漏。 groups.google.com/group/god-rb/browse_thread/thread/… God 内存泄漏已在大约一年前修复(测试blog.vortorus.net/2009/12/06/…) 但不幸的是,它仍然无法停止和重新启动进程。【参考方案4】:

我什至让上帝在我的专用 Ubuntu 服务器上运行时遇到了很多问题。我最终只是放弃了。 Monit 可能不是 Ruby,但它基本上没有麻烦。

【讨论】:

你能说得更具体点吗?什么样的问题? 当然。 $ sudo god check using event system: netlink starting event handler forking off new process forked process with pid = 15795 kill process [fail] never received process exit event【参考方案5】:

对于以后发现此帖子的任何人,您也可以将bluepill 视为上帝的替代品。虽然我希望上帝在过去两年中解决了它的记忆问题,但我知道 bluepill 从一开始就是在很小的空间内运行的。虽然仍然不如 monit,但 bluepill 的占用空间非常合理(~16 MB VIRT,13 MB RES 对我来说)。

【讨论】:

到目前为止我喜欢 bluepill。语法优美,易于使用。但它几乎没有文档。做比几个例子更多的事情需要阅读代码。请给我一些基本的文档,告诉我我可以用这件事做什么。【参考方案6】:

Monit 有自己的问题:

空的 PID 文件会导致问题。 如果您有多个级别的依赖项,它会在启动较低级别的依赖项时启动***应用程序。这对于某些用例可能非常有用,但不是特别灵活。

目前我觉得这很烦人。幸运的是,您可以通过它们的“组”功能来解决依赖关系,但这并不是特别令人满意。无论如何,这就是我对 v5.1.1 的看法

【讨论】:

这些原因正是我转向上帝的原因 @oreoshake 你是什么意思? - 上帝根本不处理依赖关系。评论者抱怨 Monit 不能很好地处理嵌套依赖关系,在上帝你不能指定一个又一个进程开始! 那是一个愤怒的评论,当我陷入困境并且我主要谈论 PID 问题时,在我的情况下没有加载依赖项。解决了我的问题,仍在使用 monit :)

以上是关于上帝与Monit [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

HYSBZ - 3884 上帝与集合的正确用法

欧拉函数 BZOJ3884 上帝与集合的正确用法

BZOJ3884: 上帝与集合的正确用法

BZOJ3884上帝与集合的正确用法 欧拉定理

bzoj3884 上帝与集合的正确用法

BZOJ 3884 上帝与集合的正确用法