After many hours of testing, i believe the "worker" module IS NOT suitable for a VPS server because it allocates too much memory (allocated!=used memory).
The key issue is that it allocates the memory, so your VPS will still report that you have loads of free memory but your'll be hitting your privvmpages limit (requested but unused memory).
You'll know it when you'll see the following signs:
Code:
errors like: Cannot allocate memory: couldn't create child process.
errors like: (12)Cannot allocate memory: couldn't create child process.
your /proc/user_beancounters under "privvmpages" will raise the fail count.
i managed to limit the memory usage with the following options:
Code:
ServerLimit 4
ThreadLimit 20
StartServers 1
MaxClients 20
MinSpareThreads 1
MaxSpareThreads 5
ThreadsPerChild 5
unfortunately, they are too limited and then these will hit the privvmpages limit with 20 or more concurrent HTTP requests.
i believe the only solution is to use the prefork module which has no issues with pre-allocating memory since it doesn't use threads.
.