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.
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:
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.