Mysql – Should I increase max_connections in AWS RDS t1-micro for MySQL

amazon-rdsMySQLmysql-5.5

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

  • 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

Best Answer

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

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