I have a website that runs on 2 boxes, 1 for mysql and 1 for html. My problem is during peak hours, my mysql load is too high and the site takes forever to load. We are no experts with NIX/Server Management and its a small operation we are running here (revenue wise) so we can't afford to buy expensive hardware nor are we really technical when it comes to scaling, we are student-hackers who are decent at coding and I guess that is about it. The current system was set up by our webhost, but we could have set it up if we really needed to.
My question is, how do I add more mysql boxes to scale this thing out, I have already applied the simple tweaks of memcache, splitting up tables, etc.
Any simple ways or tutorials anyone can point us out to for scaling without spending too much would be great or tips on what to do next or who to approach would be helpful.
A tuned mysql server versus an out-of-the-box configured one will make a world of a difference.
It would be nice if you provided some more information about what you consider to be 'peak hours', how many queries per second you are processing, how the division between static and dynamic content on your site is and whether you have done things like enabling and analysing the 'slow query log'.
Have you used 'explain' on all your queries to make sure that you are not accidentally hitting all or a large number of rows in some of your queries ?