[Mongrel] monit vs mongrel cluster

Zack Chandler zackchandler at gmail.com
Tue Apr 3 19:19:39 EDT 2007


Ezra,

The --clean option is only available in 1.0.1.1 beta I believe?  Are
you finding it stable enough for production environments (EY)?

I've been bitten by orphaned pids many times - I'm looking forward to
putting this into production...

--
Zack Chandler
http://depixelate.com

On 4/3/07, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
>
>         Yes mongrel_cluster handles the pid files. Also it does a better job
> of stopping mongrels. The problem I had when I used monit and
> mongrel_rails without mongrel_cluster was that if a mongrel used too
> much memory monit woudl not be able to stop it sometimes and so
> execution woudl fail and timeout.
>
>         Using mongrel_clutser avoids this problem completely. Trust me I've
> tried it all different ways. I did monit without mongrel_cluster for
> a about a full month on close to 200 servers and then switched them
> all to monit and mongrel_cluster and get much better results.
>
> -Ezra
>
> On Apr 3, 2007, at 3:00 PM, snacktime wrote:
>
> > Makes sense that mongrel_cluster would handle a lot of edge cases
> > better then monit.  Is it mainly the pid file handling that has been
> > the main issue so far?
> >
> > Have you tried daemontools?  Seems to me like it would be more
> > reliable since you wouldn't have to deal with pid files and
> > backgrounding mongrel.
> >
> > Chris
> >
> > On 4/3/07, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
> >>
> >> On Apr 3, 2007, at 1:39 PM, snacktime wrote:
> >>
> >>> Is there anything mongrel cluster gives you that monit doesn't?
> >>> I'll
> >>> be using monit to monitor a number of other services anyways, so it
> >>> seems logical to just use it for everything including mongrel.
> >>>
> >>> Chris
> >>>
> >>
> >> Chris-
> >>
> >>         WHen you use monit you can still use mongrel_cluster to
> >> manage it.
> >> You need the latest pre release of mongrel_cluster. This is the best
> >> configuration I've been able to come up with for 64Bit systems. If
> >> your on 32bit system then you can lower the memory limits by about
> >> 20-30%
> >>
> >> check process mongrel_<%= @username %>_5000
> >>    with pidfile /data/<%= @username %>/shared/log/mongrel.5000.pid
> >>    start program = "/usr/bin/mongrel_rails cluster::start -C /data/<%
> >> = @username %>/current/config/mongrel_cluster.yml --clean --only
> >> 5000"
> >>    stop program = "/usr/bin/mongrel_rails cluster::stop -C /data/<%=
> >> @username %>/current/config/mongrel_cluster.yml --clean --only 5000"
> >>    if totalmem is greater than 110.0 MB for 4 cycles then
> >> restart       # eating up memory?
> >>    if cpu is greater than 50% for 2 cycles then
> >> alert                  # send an email to admin
> >>    if cpu is greater than 80% for 3 cycles then
> >> restart                # hung process?
> >>    if loadavg(5min) greater than 10 for 8 cycles then
> >> restart          # bad, bad, bad
> >>    if 20 restarts within 20 cycles then
> >> timeout                         # something is wrong, call the sys-
> >> admin
> >>    group mongrel
> >>
> >> check process mongrel_<%= @username %>_5001
> >>    with pidfile /data/<%= @username %>/shared/log/mongrel.5001.pid
> >>    start program = "/usr/bin/mongrel_rails cluster::start -C /data/<%
> >> = @username %>/current/config/mongrel_cluster.yml --clean --only
> >> 5001"
> >>    stop program = "/usr/bin/mongrel_rails cluster::stop -C /data/<%=
> >> @username %>/current/config/mongrel_cluster.yml --clean --only 5001"
> >>    if totalmem is greater than 110.0 MB for 4 cycles then
> >> restart       # eating up memory?
> >>    if cpu is greater than 50% for 2 cycles then
> >> alert                  # send an email to admin
> >>    if cpu is greater than 80% for 3 cycles then
> >> restart                # hung process?
> >>    if loadavg(5min) greater than 10 for 8 cycles then
> >> restart          # bad, bad, bad
> >>    if 20 restarts within 20 cycles then
> >> timeout                         # something is wrong, call the sys-
> >> admin
> >>    group mongrel
> >>
> >> check process mongrel_<%= @username %>_5002
> >>    with pidfile /data/<%= @username %>/shared/log/mongrel.5002.pid
> >>    start program = "/usr/bin/mongrel_rails cluster::start -C /data/<%
> >> = @username %>/current/config/mongrel_cluster.yml --clean --only
> >> 5002"
> >>    stop program = "/usr/bin/mongrel_rails cluster::stop -C /data/<%=
> >> @username %>/current/config/mongrel_cluster.yml --clean --only 5002"
> >>    if totalmem is greater than 110.0 MB for 4 cycles then
> >> restart       # eating up memory?
> >>    if cpu is greater than 50% for 2 cycles then
> >> alert                  # send an email to admin
> >>    if cpu is greater than 80% for 3 cycles then
> >> restart                # hung process?
> >>    if loadavg(5min) greater than 10 for 8 cycles then
> >> restart          # bad, bad, bad
> >>    if 20 restarts within 20 cycles then
> >> timeout                         # something is wrong, call the sys-
> >> admin
> >>    group mongrel
> >>
> >>
> >>         I wen't for a while using my own scripts to start and stop
> >> mongrel
> >> without using mongrel_cluster. But it works more reliably when I use
> >> mongrel_cluster and monit together.
> >>
> >> Cheers-
> >> -- Ezra Zygmuntowicz
> >> -- Lead Rails Evangelist
> >> -- ez at engineyard.com
> >> -- Engine Yard, Serious Rails Hosting
> >> -- (866) 518-YARD (9273)
> >>
> >>
> >> _______________________________________________
> >> Mongrel-users mailing list
> >> Mongrel-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/mongrel-users
> >>
> > _______________________________________________
> > Mongrel-users mailing list
> > Mongrel-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/mongrel-users
> >
>
> -- Ezra Zygmuntowicz
> -- Lead Rails Evangelist
> -- ez at engineyard.com
> -- Engine Yard, Serious Rails Hosting
> -- (866) 518-YARD (9273)
>
>
> _______________________________________________
> Mongrel-users mailing list
> Mongrel-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-users
>


More information about the Mongrel-users mailing list