nanerpuss wrote:
19 does seem a little low doesn't it?
No, 19 looks just fine. Each client needs one process, and each process contains the PHP interpreter which takes up over 10MB of RAM (plus the amount of RAM used by your PHP script, if it's a PHP request). Anything over 20 and you're just increasing the chance of swapping. In a VPS environment, you should normally ignore "server reached MaxClients" messages. At worst, a few clients will have to wait in line for a fraction of a second.
On the other hand, if MaxClients is already below 20, that pretty much rules out the possibility of Apache+PHP eating up all your RAM -- unless one of your scripts is a supermassive resource hog. Just to be sure, try reducing MaxClients to 15 for a while. It shouldn't hurt performance too much.
What's the value of memory_limit in /etc/php5/apache2/php.ini ? Do you have any .htaccess directives or PHP scripts that override the default?
How much RAM is MySQL using? Any other big programs?
Can you run
htop while you're having one of those slowdowns? (install it first: apt-get install htop) That would show you a lot of interesting realtime statistics, as well as the name of the program that's using the most CPU & RAM at that moment.
The above steps would nearly exhaust the out-of-memory possibilities. If you're not out of memory when the slowdown happens, the problem may be elsewhere.
You said you began to have these problems after you installed SSL. Can you disable SSL for a few days to see how it goes? If the server run fine without SSL, we might need to look more closely at your SSL configuration.