I have Fedora 15 , Apache 2.2.22 mod_perl 2.0.4 . It has 2 CPUs and 1 GB of memory. I have a perl CGI web application that in the system monitor show 23.9MB in resident memory and 14.3 in Memory. I am trying to maximize the speed of the site. I am using ab as a benchmark test:
ab -n 500 -c 100 URL
I have set MaxClients to 50 by the following reasoning:
1000(1GB of memory) - 230MB(server resting memory) = 770
770/15(size of the memory used by perl script) = 51
This results in roughly 2.5 requests/second
I added another 1GB of memory , changed MaxClients to 100 and expected the requests/second to increase. They did not. They stayed roughly the same. I changed it back to 50 and it stayed roughly the same. I removed the extra memory and changed the number to 20 and the request/second stayed roughly the same.
I can see that MaxClients affects the number of httpd processes that get spawned, but I am a little dumbfounded that changing the number of MaxClients does not affect the request/second.
Is ab not a good benchmarking tool?
Am I incorrect in how MaxClients , the httpd processes and ab work together?