目前max_connections
MySQL RDS t1.micro服务器模型中该参数的值为{DBInstanceClassMemory/12582880}
32。
由于我的服务器在 32 之后不允许再允许任何连接,max_connections
我可以为微实例使用的最大安全值是多少?
答案1
大约两年前,我被委托评估 Amazon RDS for MySQL。我在 DBA StackExchange 上写了一些关于我的发现和观察的帖子:
Jul 25, 2012
:扩展 Percona 数据中心:设置和复制Aug 02, 2012
:本地数据库与 Amazon RDSSep 21, 2012
:MySQL 5.5 内存不足,创建多个数据库时会断开所有连接
简而言之,有三个选项你无法改变
- 最大连接数(每个服务器型号)
- innodb_buffer_pool_size(每个服务器型号)
- innodb_log_file_size(所有服务器型号,
128M
)
这是我制作的图表,告诉您每个服务器模型的限制
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)
至于你的实际问题,t1.micro
34 作为最大连接数设置。如果不能超过 32,这是可以理解的。Amazon AWS 必须能够连接并监控 RDS 实例作为极好的用户。对于一个实例来说,不能超过 32 个是合理的t1.micro
。鉴于此,你别无选择,只能相信亚马逊管理的分配方案最大连接数以及 AWS 云中所有 MySQL 实例中的其他选项。
答案2
以下是您可以执行的操作来更改max_connections
AWS RDS(mysql)实例中的任何其他参数:
- 从 RDS 控制台转到参数组
- 基于默认组创建一个新的参数组并命名
my-param-group
- 修改
max_connections
或其他参数my-param-group
- 返回实例主页并点击调整在实例操作按钮来修改实例
- 选择
my-param-group
作为数据库参数组 - 重启实例
- 完毕!
答案3
自从接受答案以来,情况似乎发生了变化。看到这个之后线我使用数据库参数组在 db.m3.medium RDS MySQL 实例上进行了测试,并将 max_connection 手动设置为 2000。我能够创建 2000 个连接,但随后出现了预期的错误“连接过多”。