On Mon, 25 Mar 2002, Hans Juergen von Lengerke wrote:
We are currently using squid set up as a reverse proxy to accelerate
several heavy backends (mod_perl, etc) and to protect them from slow
client connections.
I am looking into replacing the squid with apache+mod_proxy. Why?
Because ultimately I'd like to be able to cluster the frontend using
mod_backhand + wackamole. The primary reason for clustering isn't for
load-balancing (yet) but for failover handling. So, ideally, one machine
should be enough to serve the whole server load.
Speaking of load, the squid (2.3.STABLE1) is currently doing up to 80
requests per second at a cache hit ratio of around 72%. This is on one
box, a Dual 500MHz Pentium III with 1GB RAM. Average object size is 6KB.
200/304 ratio is around 5/3.
Now, I've tried to replace the squid with apache+mod_proxy (1.3.11) and
the frontend very quickly came to a standstill. I set MaxClients to 256
but all slots filled up fast. I upped MaxClients to 512 (recompiled with
patched httpd.h) but the result was the same. All slots were occupied in
no time and the server ground to a halt.
Now I'm left with two choices: give up or try harder :-)
Before I decide for one of them I thought I'd ask on the lists (sorry
for the x-post) to see if the above numbers (80 Hits/Second) are in fact
feasible with apache/mod_proxy on one box. Are there any benchmarks
around? Does someone have a similar setup and how many requests can they
serve? Should I up MaxClients any further? Will I get better results
using a newer version of apache? Or should I give up and stick with
squid?
Apache can easy handle 80r/s on Ethernet or localhost connection.
But if connections are slow (i.e. modem users) and responses
are big enough then you can reach MaxClients. As far as I know
80r/s rate requires about 400-600 Apache with 20-40K responses.
If your responses are bigger then more Apaches you need.
You can increase MaxClients until your swap is free.
On 1G you can run about 1000-2000 plain Apaches.
But if you plan to use mod_proxy to proxy backend I think
you should use mod_accel.
Igor Sysoev