系统环境的性能与优化-数据库连接数设置

数据库对于AS请求的响应和处理效率及性能,与一个因素有很大的关系—AS中数据库连接池的最大连接数配置。连接池中配置的最大连接数决定了AS能够从数据库端获取的数据库连接数量,也就决定了AS能同时占用多少数据库连接对数据做操作。

由此看来,当数据库最大连接数设置不够大时,则会出现某些报表或需要查询数据库的请求失败,由于连接数不够不能被处理,从而报错。当出现大量并发的报表请求,且连接池的最大连接数不够用时,一些用户的请求就无法处理,这样也就从另一个层面影响了整个项目处理吞吐量的能力,限制了项目的性能和效率。

数据库连接数是不是越大越好?

并不是最大连接数设置的越大越好,或者干脆不做限制,都是不对的。以常用的tomcat为例,连接池中参数maxActive表示支持的最大数据库连接数,0表示无限制。此参数一般情况下建议设置成项目中实际使用数据库连接数的最大值,但也要考虑到对DBS的保护。如果tomcat中部署的应用对DBS压力极限情况下可能过大,而又没有maxActive的限制,则可能造成DBS无法支撑、响应过慢,甚至宕机的现象。

所以数据库连接池的最大连接数要结合用户的实际情况去调整。

原则是:既能保证项目正常使用时对数据库连接数的要求,又能保护DBS的安全和稳定。

产品部署到tomcat下数据库连接数的设置

配置文件所在位置:\tomcat\conf\Catalina\localhost\APPPATH.xml

系统环境的性能与优化-数据库连接数设置
 

maxActive 连接数据库的最大连接数。这个属性用来限制连接池中能够打开连接的数量,可以方便数据库做连接容量规划。

minIdle 连接池中存在的最小连接数目。

最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉。最大连接数是连接池能申请的最大连接数。如果数据连接请求超过此数,后面的数据连接请求将被加入到等待队列中,这会影响之后的数据库操作。

如果最小连接数与最大连接数相差太大,那么,最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

其它不同J2EE的web容器,设置数据库连接数设置的方式不同,在此不逐一列举了,用户可查看相关产品的手册。