We had held an online Moodle quiz with 350+ users. Photos of answer scripts are required to uploaded to Moodle, Moodle was overloaded and most users were unable to login or encountered webpage frozen. We found the below error messages in apache error log besides numerous "invalid login token".
[mpm_worker:error] [pid 2207:tid 140268152399744] AH00287: server is within MinSpareThreads of MaxRequestWorkers, consider raising the MaxRequestWorkers setting
[mpm_worker:error] [pid 2207:tid 140268152399744] AH00286: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
I wonder whether it is correct to include the below setting in httpd.conf file so as to raise the value of MaxRequestWorkers for more concurrent users. As we hadn't change these setting before, it is believed that Moodle was using the default setting - MaxRequestWorkers = 400.
<IfModule mpm_worker_module>
ServerLimit 32
StartServers 10
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 32
MaxRequestWorkers 1024
MaxConnectionsPerChild 10000
</IfModule>
I found that our Linux version (CentOS 7.4, source compiled Apache 2.4.9) does not include the file 00-mpm.conf nor mod_mpm_worker.so .Also, I can't find the statement LoadModule mpm_worker_module modules/mod_mpm_worker.so in the httpd.conf config file. I wonder how can I change the above setting.
According to apache2buddy result, the average apache process is 287MB and the available free memory is 51GB.
I wonder if the actual MaxRequestWorkers value is only 51GB/287MB=178 instead of the value in setting = 400.
Please feel free to advise. Thank you very much.