grzegorz.nosek at gmail.com
Wed Mar 4 12:42:49 MSK 2009
On śro, mar 04, 2009 at 12:55:01 -0800, mike wrote:
> Why not just make a php-fpm style thing like we talked about?
> Define pools of fastcgi resources, with various configuration options,
> timeout thresholds, error logging/capturing perhaps, ability to run as
> different uid/gid per pool, adaptive process spawning (hard limits
> etc.) ...
[disclaimer: I haven't worked with supervisord yet, so I'm possibly
wrong about its capabilities]
Well, this is the foundation, which AIUI supervisord provides. However,
it has no possibility to know how busy the managed processes are and
when to spawn/kill (again, php-fpm has it too easy, it's not implementable
this way in a generic process manager). Thus it needs some notification
from Nginx when it's overloaded (and when backends are idle -- but this
is a harder task).
So, to recap: supervisord alone allows you to run a statically-sized
pool of processes (with some nifty features like you mentioned above).
If you need dynamic pool sizing, you need some external help, either from
Nginx, or possibly the kernel. What we're discussing here is not an
alternative to a dynamic process pool, it's one of the few sensible ways
to implement it in a language-agnostic way.
(BTW, I wonder whether supervisord can interface with PAM)
More information about the nginx