Mysql – When to increase AWS RDS MySQL Server instance to larger CPU/RAM

amazon-rdsamazon-web-servicesMySQL

I'm wondering at what stage do I need to increase the image for the RDS MySQL server to a larger CPU/RAM instance.

The CPU utilization graph is near 0. The Avg Free Memory is around 150MB. The Avg Swap Usage is 420MB.

Read Latency is 0-20ms/op it spikes up randomly. Avg write latency is on average 5ms/op but spikes up to 10-20ms/op.

Are there some common rules here that I should follow?

Thanks!

Best Answer

There are no common rules

Performance rules need to be set by business & technical objectives - not arbitrary ones.

What performance issue are you trying to resolve or prevent?

Metrics do not equate performance and often have little to to do with business or even technical objectives.

Typically I look at two aspects of performance.

  • What metrics do I need to monitor that meet performance objectives?
  • How much resource overhead do I wish to maintain to assure I meet these performance objectives.

Focusing purely on database resource metrics in absence of other data is likely not very useful. These metrics need context - otherwise it is just premature optimization.

Metrics like these are useful for capacity planning if you know your utilization rates.

So maybe more important questions would be:

  • At peak usage levels is my application performing within acceptable limits?
  • At peak usage, what is my resource utilization.?
  • With the expected growth, what will be my resource utilization?

Too often I find people focus on what I call ping, power and pipe (CPU/Disk/RAM). Rarely are these the important things to focus on.

Getting data and setting goals to the questions above will help you make scalability decisions with both technical and business justifications.

Related Topic