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 trying to handle 3000 concurrent user requests on a front end web proxy server. The front end just caches static files and passes on the rest of the page requests to a back end application server. My httpd.conf configuration:

ThreadLimit        100
ServerLimit        200
StartServers         20
MaxClients         5500
MinSpareThreads     100
MaxSpareThreads     1000
ThreadsPerChild     100
MaxRequestsPerChild  100000

This is for worker mpm

However, when I am running the load, I see the memory used is up to 1.7G for a 2G RAM VM, CPU utilization is low - maxing out around 40% most times, and only 40 httpd processes runnning when I run

ps -ef|grep httpd|wc -l

Why can't I get anywhere close to the 200 limit that I set. Do I have to change anything on the OS?

Right now I am getting a lot of socket I/O exception during the load test, and suspect that the web server just cannot handle the load.

share|improve this question

1 Answer 1

Remember that worker is an hybrid processing model using both forked process and threads within those processes. As a consequence if you don't display LWP in your ps command you'll miss the threads apache uses and only see processus. Try the same with:

ps -efL

That should help you determine if the 40 processes are at least using all the threads they can.

Based on your mpm config, you should be able to handle 20000 requests concurrently. This a value is quite high and probably not suitable for a server with only 2GB of RAM.

Check your RAM usage per process and probably the number of file descriptor per user and system wide.

share|improve this answer
    
Thanks. I changed the ps command that you suggested and ran a lower load of 1000 users (can't kill the production server during the day). Got a number of 938. Number of processes was 17 compared to the 40 for 6000 users. Ram usage per process is less than 20M –  Gavin Jan 20 at 2:19
    
I ran the same test again with 6000 users. count for ps -ef was 33, count for ps -efL was 2026. I also upped the VM ram to 4G, but didn't get anywhere above 2G utilized. Something is not quite right –  Gavin Jan 20 at 23:11

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.