Indicators you look at when considering a plan upgrade?

Let's say you're running a website, PHP/MySQL.

From your point of view, what signals would tell you it's time to upgrade to a faster Linode plan?

2 Replies

When my databases were growing large enough to need bigger caches, or when all my PHP processes were saturated such that I needed more of them, but didn't have any more RAM?

There is no explicit speed difference between the plans, so I wouldn't call it upgrading to a "faster" plan. However, more RAM per instance = fewer instances per server = less contention for CPU and I/O, so if you're bouncing against steal or iowait, sure. Also, more RAM = more room for caching by your kernel = less I/O.

Usually, for database servers, I look at being able to meet current peak traffic plus a generous safety margin, with a decent amount for caching. If you're using MySQL, http://mysqltuner.com/ is the bee's knees for tweaking the database:

wget http://mysqltuner.pl/
sudo perl mysqltuner.pl

For web/application servers, I'll usually try optimizing as much as I can within the memory allocation before upgrading, since that will more directly improve site performance and will pay dividends as things grow down the line.

If you've got your web stuff and your database on the same server and traffic is getting piquant, I would seriously recommend two 512 instances rather than one 1024 instance. Put the database on one and the web stuff on the other. This will let you tune and scale them both independently.

(Protip: With MySQL, use the InnoDB engine for your tables and turn on binlogging. When you do your nightly mysqldump, "–single-transaction --quick --master-data=1" will get you a consistent dump with metadata that can be used to bootstrap a slave in a hurry if shit hits the fan.)

Scaling is, like most things, a matter of personal preference and religion. I prefer to scale horizontally; others prefer to scale vertically. Neither of us are wrong, but I'm right. ;-)

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct