On Sat, 23 Dec 2006 20:30:03 +0100
François SIMOND <[EMAIL PROTECTED]> wrote:

> Hello Zed !
> 
> Do you knows or plan a way to spawn mongrel processes on demand ?

There's a yes and no answer to your question.  The "no" is that on demand 
spawning isn't a good way to plan your systems.  Leaving system usage levels 
and resource allocation to a program only works for simple stuff.  The second 
you get dugg or slashdotted and your fancy on-demand-spawner goes insane you'll 
understand why.

Typically though this is a problem that geeks *love* to try to solve.  Every 
one of them has burned to the ground trying to do it though.  Talk to anyone 
who's been through Apache on-demand tuning and the deadly oomkiller to find out 
how nasty this strategy is.

Instead, it's better to calculate the resources you have and the processes 
you'll need to meet your processing demands.  Then, monitoring your systems to 
make sure they're operating within your planned limits helps to identify when 
this isn't working anymore.  At that point your replan and roll out more 
hardware or some other redesign.

I'm sure though all the overly smart people in the room will go insane trying 
to solve this, so before you do read this:  
http://www.fudco.com/habitat/archives/000056.html
 
> I'm studying options to build an affordable but solid shared hosting
> solution.
> 
> You wrote something very promising in your "NEXT STEPS",
> A combination of the '"mostly C version' and the mongrel_cluster
> replacement would be an elegant method to save much RAM on servers
> (until Rails is thread-safe).

So this is the "yes" part of my answer.  While I think on-demand spawning is 
retarded and hasn't worked in practice for any serious activity, there does 
need to be a much better process management strategy for Mongrel.

Nothing's defined yet, but the goal is to make managing process *manually* for 
mongrel very easy.  It won't do on-demand scaling, or try to be smart, but 
instead just make it easy to flexibly control what processes are running and 
how many.  In your situation of a shared hosting provider, I think you'd be 
able to setup an interface that allows your customers to pay for a temporary 
boost and then tell their mongrel cluster to boost up by that amount for that 
time.
 
> FastCGI implementations for Apache are good at this.
> Similar features (min-max processes, idle time before stopping a
> process, zombie check) for mongrel would be enjoyable :)
> 
> .. just like inetd many years ago ;)

Oh man, do people really not remember their history? This attempt to manage 
fcgi and doing it poorly is the reason people end up writing their own 
monitoring software or using something like monit or runit.  This just doesn't 
work.  The idea is attractive, but in practice the tools available to monitor 
and control processes just suck.

So, hopefully a middle ground of simple flexible manual process control will be 
a better solution.

-- 
Zed A. Shaw, MUDCRAP-CE Master Black Belt Sifu
http://www.zedshaw.com/
http://www.awprofessional.com/title/0321483502 -- The Mongrel Book
http://mongrel.rubyforge.org/
http://www.lingr.com/room/3yXhqKbfPy8 -- Come get help.
_______________________________________________
Mongrel-users mailing list
Mongrel-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to