由于数据库的每个连接都会使用内存,为了防止应用因开启过多的连接,占用过多的数据库内存,影响数据库业务,因此需要检查应用对数据库的连接数是否配置的合理。
按照DBA经验,一个数据库活跃的数据库连接占用10M内存,数据库的80%内存是共享的,20%是私有的,因此一个数据库实例上的连接数*10M需要小于数据库实例内存*20%。
以如下数据库为例:mysql-XXXX
数据库实例的内存是:16G,最多允许16G*20%/10M=16*1024M*20%/10M=327.68,向下取整约等于327个连接
逐个数据库查看业务应用配置的数据连接池数量 参数:连接池最大数量maxActive
分析如果总体超过327就需要优化,保证数据库稳定性,原则是该花花 该省省 业务多的服务多分配一些资源,业务少的少分配一些资源 避免数据库过载太大产生的宕机问题