I was tasked with troubleshooting some of the performance issues we were encountering for one of my projects. In a nutshell, the project is taking an board exam from a desktop-based solution to a web-based one. The test scenario was constructed using Apache JMeter, and it simulated 120 concurrent students taking the exams at the same time. While there were nothing wrong with the average response times, we were able to consistently reproduce a max response time of over 80 seconds, which is very high. It was suspicious to me because even querying the static resources took that long for the max response, which indicated to me that this might not be because of a code issue. After a couple of weeks of investigation, I looked at the logs and found this:
[Sat Sep 15 14:46:57 2012] [warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting.
Right there that indicated to me that perhaps we were not allocating enough threads, and my suspicions were right....so I looked at the config under %httpd_home%/conf/extras/httpd-mpm.conf, but I could find any problems with the settings. Turns out, by default it actually disabled the inclusion of that config file in httpd.conf.
I just uncommented it out and restarted.
I then ran the test again, and voila the max time decreased dramatically to 7 seconds) which is acceptable by the client.
Thank you for Sharing.
ReplyDeleteEducational Exam Software