Shouldn't the child pool simply be reduced and the queue increased which would have the same effect as the slow MySQL database?
Requests should spend their time queued rather than letting the operating system thrash between processes, queues are stupid anyway in the context of webserving, they should use stacks as the best case scenarios are largely the same, and the worst case scenario for a stack are much better than a queue. (Yes, stacks are unfair, but it's better that a few people are served than no one in the event that the server gets bogged down.)
The issue is that the child pool now has too many children and the children spend their time thrashing, before it was acceptable because the children were mostly doing nothing. This sounds much more like an apache configuration issue than anything else. I wouldn't point the blame at 'fast' MySQL, but easy to misconfigure apache architecture.
Or simply frontend apache with nginx, and limit the number of backend connections. If you're using a fork/join apache which it sounds like are you, you'll get much better performance from this anyway. Setup this way apache can dump the output directly to nginx which can then spend time spoonfeeding it to the client.
Requests should spend their time queued rather than letting the operating system thrash between processes, queues are stupid anyway in the context of webserving, they should use stacks as the best case scenarios are largely the same, and the worst case scenario for a stack are much better than a queue. (Yes, stacks are unfair, but it's better that a few people are served than no one in the event that the server gets bogged down.)
The issue is that the child pool now has too many children and the children spend their time thrashing, before it was acceptable because the children were mostly doing nothing. This sounds much more like an apache configuration issue than anything else. I wouldn't point the blame at 'fast' MySQL, but easy to misconfigure apache architecture.
Or simply frontend apache with nginx, and limit the number of backend connections. If you're using a fork/join apache which it sounds like are you, you'll get much better performance from this anyway. Setup this way apache can dump the output directly to nginx which can then spend time spoonfeeding it to the client.