I want to understand when is my system under load (memory and CPU) when should I plan to scale.
Memory
I am using an ec2-instance. I have multiple processes running. They consume memory between 80-90% all the time. Should I worry or should I be happy that I am utilizing maximum of the available.
What should be memory consumption and under what circumstances I should worry about scaling?
CPU
I have another ec2-instance that runs some other processes. Most of the times the system cpu utilization is only 18-20% but at time for some of the processes it jumps to 90-100%.
Can anything might go wrong or is that only the processes might get slow due to non availability of cpu cycle and in some time they will get complete. Also any new process will wait for the availability of cpu cycles.
Can anything go wrong?
Basically I want to understand what is the scenario and what are the values when one should consider to scale up (vertically or horizontally)
In line answers or pointers to read, anything is appreciated.
First of all: you have to define the thresholds when to scale yourself. This mainly has to do with some factors that you have in your quality or stability guidelines and in your application. There is hardly any general rule for this. Here are some points to consider:
To sum up: the need for scaling depends on your application. Get to know it better in terms of system resource usage. If you have a monitoring system set up, you can watch your system performance over time.
A good read is "The Art of Capacity Planning". Also if you google a bit about "capacity planning", you will find some more points.