I have a small MySQL db running on
AWS RDS t2.small instance.
So far, the CPU usage has been very predictable based on the traffic from my app.
1000 concurrent users = 15% CPU 2000 concurrent users = 30% CPU 3000 concurrent users = 45% CPU 4000 concurrent users = 60% CPU
My RDS is averaging just 15% with very predictable traffic spikes and I do have enough credits to cover the CPU spikes.
As my app is occasionally hitting 100% CPU, and since my "Reserved" instance will expire soon, I will have to soon decide on my next instance type.
As I'm not really able to benchmark the app/db and I will have to select another "Reserved" instance, considering all things being equal, the questions are:
t2.small is only
1 vCPU | 2GB memory, if I upgrade to
2 vCPU and 4GB of memory, should I expect double capacity?
T2.small vs T3.medium
T2.small | 1 vCPU | 2BG memory T3.medium | 2 vCPU | 4GB memory
Should I expect the
t3.medium will be running only at 30% with 4000 concurrent users?
Considering my app usage is growing around 10% per month, should the
t3.medium keep me running for another year?
I don't really have a budget for anything fancier, so unless the
AWS Aurora would be a better option, I would like to stay with the T3 instance family.
Here is a CPU screenshot.
SHOW GLOBAL STATUS LIKE '%connect%'
# Variable_name, Value 'Aborted_connects', '47' 'Connection_errors_accept', '0' 'Connection_errors_internal', '0' 'Connection_errors_max_connections', '0' 'Connection_errors_peer_address', '0' 'Connection_errors_select', '0' 'Connection_errors_tcpwrap', '0' 'Connections', '2986313' 'Max_used_connections', '113' 'Performance_schema_session_connect_attrs_lost', '0' 'Ssl_client_connects', '0' 'Ssl_connect_renegotiates', '0' 'Ssl_finished_connects', '0' 'Threads_connected', '4'