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
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>
> _______________________________________________
> Mongrel-users mailing list
> [email protected]
> 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
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users