Ezra, Would you mind sharing the portion of your monit.conf that handles the cluster?
Many thanks, Henry On Apr 3, 2007, at 6:28 PM, Ezra Zygmuntowicz 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 <[EMAIL PROTECTED]> 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 >>> -- [EMAIL PROTECTED] >>> -- Engine Yard, Serious Rails Hosting >>> -- (866) 518-YARD (9273) >>> >>> >>> _______________________________________________ >>> Mongrel-users mailing list >>> Mongrel-users@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/mongrel-users >>> >> _______________________________________________ >> Mongrel-users mailing list >> Mongrel-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/mongrel-users >> > > -- Ezra Zygmuntowicz > -- Lead Rails Evangelist > -- [EMAIL PROTECTED] > -- Engine Yard, Serious Rails Hosting > -- (866) 518-YARD (9273) > > > _______________________________________________ > Mongrel-users mailing list > Mongrel-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users _______________________________________________ Mongrel-users mailing list Mongrel-users@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-users