dbcp数据库连接池的参数问题
dbcp配置参考
dbcp完整配置
http://commons.apache.org/proper/commons-dbcp/configuration.html
<property name="initialSize">
<value>3</value>
</property>
<property name="minIdle">
<value>2</value>
</property>
<property name="maxIdle">
<value>5</value>
</property>
<property name="maxActive">
<value>150</value>
</property>
数据库连接最大支持1000个.
参数修改为
<property name="initialSize">
<value>30</value>
</property>
<property name="minIdle">
<value>30</value>
</property>
<property name="maxIdle">
<value>100</value>
</property>
<property name="maxActive">
<value>500</value>
</property>
-------------之前cc的问题也记录下--------
因为高负载,上千的用户访问. 原来的maxIdle是20,后面调整到70问题就解决.
导致 连接老是创建连接有连接超时的情况.
<property name="maxActive" value="200" />
<property name="initialSize" value="10" />
<property name="maxIdle" value="20" />
<property name="minIdle" value="5" />
<property name="maxWait" value="30000" />
<property name="timeBetweenEvictionRunsMillis" value="1800000" />
<property name="numTestsPerEvictionRun" value="5" />
<property name="testOnBorrow">true</property>
<property name="validationQuery">select 1</property>
- maxActive :连接池中可同时连接的最大的连接数(默认值为8,调整为20,高峰单机器在20并发左右,自己根据应用场景定)
- maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限制(默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数 上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置)
- minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接(默认为0,调整为5,该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;但是不能太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接,类似于jvm参数中的Xmn设置)