Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am just trying to understand something... I have configured Apache+modsecurity+mod_proxy to act as a reverse proxy to 4 web backends.

This is not in production at this time and I was wondering what I have to do on the reverse proxy with the MaxClient setting. The RP server has 4Gb RAM.

I don t understand why the httpd processes use around 21Mb! Does it mean that my RP will only be able to handle 4000000/21000=~190 clients at the same time?

In that way why do people use Apache as a reverse proxy if the reverse proxy itself can only handle the traffic of web server only? I mean, if I had 8 backend webs to load balance to (with MaxClient=150 on each of them). I'll have to have MacxClients=8*150 on the reverse proxy. So the reverse proxy server will have to use 18Gb of RAM to work properly?(21000/1150)

Did I miss something?

Need your help, thanks.

share|improve this question
add comment

1 Answer 1

Your apache2 processes are probably not using the amount of RAM you think, as some significant amount of that memory footprint is used by shared libraries. However, it would certainly be wise to configure your front-end proxy to have MaxClients of 200 or so until you get a better idea how the system performs under load.

The thing you might consider in the cache-tier/service-tier architecture you describe is that the RP on the front can do its part to service a request significantly faster than the applications in the service tier. So even though at the outset it would seem that the RP is going to be your choke point, that is unlikely to be the case. Possible, but unlikely.

If it turns out your application tier is so fast that a single RP cannot keep up, it is relatively easy to move to a load-balanced caching tier using roundrobin DNS, or even deploy a commercial load balancer. You have plenty of options.

To get an idea of how much traffic your RP can actually handle, read up on ab - the Apache benchmarking tool. It's an easy way to throw a lot of traffic at your front end server and see how it handles load. From there, you can graduate to doing more complicated load testing to involve your service tier, but ab should help you get a feel for whether your RP can handle the sorts of load you expect on your application.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.