Somehow a high volume site for your reference:

System: P4 1.6G, 1G memory, Linux 7.2, Perl 5.6, customized kernel.

Front-end plain apache, and backend mod_perl, + a local mysql database(!).

The system currently handles 130K unique IP per day. At the peak time,
the proxy serves typically 500 clients while the backend handles
50 children. Normally, it is about 200 clients + 50 children. 
Keep-live is off. CPU usage is typically 70-90% full.

Keep-live used to be ON, but then at the 9K IP daily hits, the whole 
system went down because the frontend quickly forked to 1024 (a limit
I set) by too many instant requests. If that happend, the whole
system would head to memory swap, hardly recovery.

Generally speaking, the proxy + mod_perl fork model is quite scalable. 


Pod Merl

On Mon, 2004-02-23 at 19:37, Richard F. Rebel wrote:
> Eh well, do I get points for making a prod
> system run with mp2 and mpm-worker?

Certainly.  We are all eager for this kind of info.

> Most of our clients are *slow*, so perhaps this is why things seem to
> work so well.

Actually, if your clients are slow you would be better off with a
reverse proxy to do buffering.

> I have increased the number of interpreters and have
> noticed a decrease in cpu usage and an improvement in performance in
> general.

Cool.

> Now, does this sort of explain why I was seeing more memory usage with
> prefork, slow clients?

That was because you were running 500 interpreters instead of 50.

> When exactly is the perl interpreter put back
> into the 'free' list?

More of a question for someone closer to the code than me, but I thought
that the interpreter was tied up until the server finishes the request,
meaning that slow clients will keep an interpreter tied up for a long
time.

- Perrin

-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to