patternsqlModerate
Should I increase max_connections in AWS RDS t1-micro for MySQL?
Viewed 0 times
micromax_connectionsmysqlincreaseawsshouldforrds
Problem
I have an AWS RDS t1-micro running MySQL 5.5. It gives me too many connections error. I checked and it allows 34 maximum connections concurrently. What I have read is that i can increase this max value by creating a DB parameter group for this Micro instance.
My confusion is
Thanks
My confusion is
- Should I increase the max connection value for micro in DB parameter group? or Should i consider upgrading to next RDS level which provides more maximum connections (125)?
- Should I increase max_connections on micro RDS to 125 vs upgrading to RDS small instance?
- Why and What factors should I make the decision on?
Thanks
Solution
Each connection carries the load of per-connection buffers as set by these parameters
Changing the number of connections increases the amount of memory each connection can demand to this : (join_buffer_size+sort_buffer_size+read_buffer_size
+read_rnd buffer_size) X max_connections
I have written about these before
ANALYSIS
Amazon has to set the number of connections based on each model's right to demand a certain amount of memory and connections
I wrote about this as well : When should I think about upgrading our RDS MySQL instance based on memory usage?
This allows Amazon to do the following:
RECOMMENDATION
Perhaps you should try useing Amazon EC2 where you have no restrictions on access to my.cnf
- join_buffer_size
- sort_buffer_size
- read_buffer_size
- read_rnd buffer_size
Changing the number of connections increases the amount of memory each connection can demand to this : (join_buffer_size+sort_buffer_size+read_buffer_size
+read_rnd buffer_size) X max_connections
I have written about these before
Jan 03, 2012: Understanding mysqltuner Recomendations w/ Unused Catalogs
Apr 24, 2012: How costly is opening and closing of a DB connection?
Feb 01, 2013: Show processlist / Max concurrent connections seem to max out at 131
ANALYSIS
Amazon has to set the number of connections based on each model's right to demand a certain amount of memory and connections
MODEL max_connections innodb_buffer_pool_size
--------- --------------- -----------------------
t1.micro 34 326107136 ( 311M)
m1-small 125 1179648000 ( 1125M, 1.097G)
m1-large 623 5882511360 ( 5610M, 5.479G)
m1-xlarge 1263 11922309120 (11370M, 11.103G)
m2-xlarge 1441 13605273600 (12975M, 12.671G)
m2-2xlarge 2900 27367833600 (26100M, 25.488G)
m2-4xlarge 5816 54892953600 (52350M, 51.123G)I wrote about this as well : When should I think about upgrading our RDS MySQL instance based on memory usage?
This allows Amazon to do the following:
- Charge you for each memory model based on seamless MySQL usage
- Fairly Apportion Resources for MySQL RDS per region
- Shoot yourself in the foot for tampering with per-connection settings
RECOMMENDATION
Perhaps you should try useing Amazon EC2 where you have no restrictions on access to my.cnf
Code Snippets
MODEL max_connections innodb_buffer_pool_size
--------- --------------- -----------------------
t1.micro 34 326107136 ( 311M)
m1-small 125 1179648000 ( 1125M, 1.097G)
m1-large 623 5882511360 ( 5610M, 5.479G)
m1-xlarge 1263 11922309120 (11370M, 11.103G)
m2-xlarge 1441 13605273600 (12975M, 12.671G)
m2-2xlarge 2900 27367833600 (26100M, 25.488G)
m2-4xlarge 5816 54892953600 (52350M, 51.123G)Context
StackExchange Database Administrators Q#41829, answer score: 17
Revisions (0)
No revisions yet.