我有一个 MySQL 数据库服务器,db.t3.micro,参数组是“default.mysql8.0”,max_connections 是“{DBInstanceClassMemory/12582880}”
我发现它不能处理超过 63 个连接
根据 AWS RDS 文档https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections
Mysql 的连接限制使用“{DBInstanceClassMemory/12582880}”公式计算,其中 DBInstanceClassMemory 层实例内存(以字节为单位)。
因此对于 db.t3.micro 1Gb 来说,它是 1073741824/12582880 = 85
'显示类似“max_connections”的变量;'返回 63
等级 | 内存,GiB | 内存,字节 | 计算连接限制 | 真实连接数限制 |
---|---|---|---|---|
数据库.t3.micro | 1 | 1073741824 | 85 | 63 |
db.t3.small | 2 | 2147483648 | 170 | 146 |
db.t3.2xlarge | 三十二 | 32x1073741824 | 2720 | 2634 |
为什么实际连接数限制小于公式结果?
答案1
因此 DBInstanceClassMemory 实际上是 TotalMemory-(OS + 其他进程消耗的内存)
亚马逊文件明确指出
db.m5.xlarge 实例类。DBInstanceClassMemory 为 16 GiB,即 17,179,869,184 字节
但事实并非如此,实际的 DBInstanceClassMemory 将小于 16GiB