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.