Бог против Монит
Какой из них использовать для мониторинга процесса и почему?
6 ответов
Оба решения хороши, и для них есть свои плюсы и минусы.
Конфигурационный файл God написан на Ruby, так что вы можете делать практически все, что позволяет Ruby, и это очень много. Monit должен быть настроен с использованием собственного синтаксиса, обычно он в порядке, но более ограничен. В любом случае, вы также можете сгенерировать monit config с Ruby (как часть вашей стратегии развертывания).
Кроме того, monit использует меньше ресурсов, поэтому, если вы используете VPS или просто не имеете свободной памяти, monit может быть лучшим выбором. Лично я предпочитаю бога, так как он более настраиваемый.
Вот очень хороший скринкаст на бога. Там также много отзывов в комментариях к этому скринкасту.
Бог очень сильно теряет память, поэтому я выбрал Monit для своего VPS. Монит постоянно работает с 2 МБ ОЗУ, в то время как моя божественная установка на Ruby 1.8.6 просочилась до 60 МБ ОЗУ за 36 часов. Я не хотел следить за своим инструментом мониторинга системы, поэтому я выбрал Бога и перешел в Monit, и у меня не было абсолютно никаких проблем.
У Бога много проблем, в том числе:
- Утечка памяти
- Проблемы с остановкой и перезапуском
Я написал об этом на http://blog.bradgessler.com/use-monit-with-rails-not-god
Единственная реальная проблема с monit (если это проблема) состоит в том, что файлы конфигурации могут быть немного многословными, если вы используете большие кластеры, но это может быть решено с помощью системы шаблонов.
У меня было множество проблем, даже когда Бог вообще работал на моем выделенном сервере Ubuntu. В конце концов я просто сдался. Монит может не быть Руби, но это в основном без проблем.
Для любого, кто найдет этот пост в будущем, вы также можете рассматривать bluepill как альтернативу Богу. Хотя я надеюсь, что у Бога есть проблемы с памятью за последние два года, я знаю, что bluepill с самого начала был основан на небольшом следе. Несмотря на то, что bluepill все еще не такой маленький, как monit, он занимает вполне разумное место (~16 МБ VIRT, 13 МБ RES для меня).
Монит имеет свои проблемы:
- Пустые файлы PID вызывают проблемы.
- Если у вас несколько уровней зависимостей, он запускает приложения верхнего уровня при запуске зависимостей более низкого уровня. Это может быть полезно для некоторых вариантов использования, но не особенно гибко.
На данный момент я нахожу это довольно раздражающим. К счастью, вы можете немного пробраться через зависимости с помощью функции "групп", но это не особенно удовлетворительно. Во всяком случае, это мой взгляд на v5.1.1