我有一个 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 | 内存,字节 | 计算的连接限制 | 实际连接限制 |
---|---|---|---|---|
db.t3.micro | 1 | 1073741824 | 85 | 63 |
db.t3.small | 2 | 2147483648 | 170 | 146 |
db.t3.2xlarge | 32 | 32x1073741824 | 2720 | 2634 |
为什么实际连接数限制小于公式结果?
所以DBInstanceClassMemory其实就是TotalMemory-(OS+其他进程消耗的内存)
亚马逊文档清楚地说
但这不是真的,真正的 DBInstanceClassMemory 将小于 16GiB