Re: Server Overload
The problem with VPS is the system will lie to you as far as how much CPU is available to you at any given time. MySQL being at 90% may be a symptom, not the cause.
You can have just one program running but if a neighbor on the same node is hogging the disk with heavy disk access, processes like MySQL which need fast disk access to respond timely will start to overload. There isn’t a single VPS that has decent disk I/O management.
What you can try to do is give MySQL as much ram as you can afford. Also take a look at how many queries your bbpress pages are using via my bb-benchmark plugin, make sure they are below two dozen.
There are specific tools you can monitor your VPS with that I highly recommend:
1. This one is a MUST so you can show your host that you have bad neighbors
http://www.silversoft.com/loadavg
2. This one takes a little more install time but is very helpful too:
http://www.labradordata.ca/home/13
3. last but not least you want a mysql monitor like MyTop
http://jeremy.zawodny.com/mysql/mytop/
Keep in mind, if you discover (via loadavg) that the load time of day happens at the EXACT same time every day (like on the hour at 9am) that means your host is doing something stupid like backing up all the VPS on the node at the same time instead of staggering it. Some VPS hosts are more experienced than others. Some hosts will argue with you that your neighbors can’t be affecting you on a VPS, in which case the host is ignorant or an idiot, or even worse, a liar.
Oh and if you don’t have a php opcode cache installed (you didn’t mention it one way or another) be sure to install one: eaccelerator, xcache or apc (eaccelerator recommended for ease of install and general compatibility)
If all else fails, replace Apache with Litespeed or lighttpd or get a better host.