I'm trying to update our current Apache 2.4.9 configuration from using prefork to worker mpm. I'm doing some simple load testing using jmeter to compare the performance between the 2. My first test is pretty simple, just get a single gif image using 10, 200, 300, 600, 1000, 1600 concurrent jmeter threads/vusers, and loading the server for an amount of time to see the average throughput and response times as well as the affect on cpu, memory, etc. As expected worker seems to preform better than prefork, however .25-.5% of the requests have errors regardless of the number of jmeter threads/vusers. Jmeter reports it receives: "The target server failed to respond". I don't see errors in the http_error.log. The system and apache status page reports plenty of cpu and memory available. I get no errors using prefork running the same tests. My worker configuration is as follows:
ServerLimit 32 StartServers 8 MaxRequestWorkers 1600 MinSpareThreads 100 MaxSpareThreads 150 ThreadsPerChild 50 MaxConnectionsPerChild 1000 ThreadLimit 100
I've tried various combinations increasing and reducing ServerLimit, ThreadsPerChild etc, but still get a small percentage of errors using worker mpm. Is there an additional module directive I need to adjust? Is this one of the trade offs for using worker? Is there additional logging I can enable?