Capacity Planning
Presently I have a single linode and everything I use is installed on it (Email with the usual, Web server, MySQL, Teamspeak, and a modest number of websites). To date I've been busy with university studies I've been undertaking and now I want to put some effort into developing my server and the services I provide. One of the sites I've developed is showing increasing traffic levels which prompted me to start thinking about how much capacty my server has. I've had MySQL crash due to memory reasons and I've use MySQLTuner script to try an mitigate the problems. I've also scheduled a cron job to restart Apache gracefully every month. (The crashes always occured on the first day of the month.)
I'm aware of strategies to distribute various functions (eg database server, mail, etc) over separate machines/boxes and use of load balancing mechanisms, but the question is "What are the breakpoints?". Factors like number of visits, size of the pages served, size of database queries, numbers of email accounts that are scanned for viruses seem straight forward to identify as 'drivers' to capacity planning. What is not clear to me is how to determine the capability of the server in dealing with all that.
Are there accepted 'rules of thumb', and/or tools used in industry for this sort of analysis?
Any advice and references would be most helpful and welcome.
Cheers,
Nap
1 Reply
I also had memory problems of the type that make MySQL to disappear, but they went away when I switched to nginx + PHP-FPM. Since you are using Apache >= 2.4, you could use Apache + PHP-FPM as well.
To reply your question. I think number of visits, size of the pages served, size of database queries, numbers of email accounts are not relevant at all. What really matters is total memory used and CPU load average. Those are the two things that will tell you if you need a bigger Linode or not. (But don't upgrade before trying nginx + PHP-FPM)