BoneCP数据库连接池性能上的缺点?



测试环境说明:

硬件环境:CPU1.73G;内存:1G

软件环境:JDK1.6+Eclipse3.4+Tomcat6.0

BoneCP版本:bonecp0.6.4/bonecp0.6.7.2/bonecp0.7.0

 

使用过程中对BoneCP数据库连接池的性能是否有缺点存在一些疑问,一直没有整理,今天大致记录一下:

 

1)在开发过程中发现,使用BoneCP数据库连接池时,如果setPartitionCount()方法以及setMaxConnectionsPerPartition()的值设置过大,有时Tomcat启动非常慢,甚至无法启动(TomcatTimeOuts参数,我的设置是45s);同时在进行大数据量导入时,数据库操作也非常慢,CPU占用率无明显增加。

2)如果值设置较小,则Tomcat启动正常,但执行速度只比C3P0略快

3)原以为作为新兴的连接池,会随着版本的升级,性能上会有所完善和改进,不过测试了几个版本的连接池,感觉性能都差不多。用bonecp0.7.0测试时,测试导入10000条数据时,分别用BoneCPv0.7.0C3P0v0.9.1.2连接池各测试了5次,平均导入时间分别为321.89s368.506sBoneCP并无明显的优势。

 

    当然,就以上体验而言,未必说明BoneCP连接池一定有问题,也可能是我在连接池参数上的设置有问题,使用BoneCP0.7.0测试时,我的设置如下:

[java] view plain copy
  1. BoneCPDataSource bcpds=new BoneCPDataSource();  
  2. bcpds.setDriverClass(driver);  
  3. bcpds.setJdbcUrl(url);  
  4. bcpds.setUsername(username);  
  5. bcpds.setPassword(passwd);  
  6. //BoneCP0.7.0  
  7. bcpds.setAcquireIncrement(1);  
  8. bcpds.setAcquireRetryDelay(10000);  
  9. bcpds.setIdleMaxAge(200);  
  10. bcpds.setIdleConnectionTestPeriod(100);  
  11. bcpds.setStatementsCacheSize(200);  
  12. bcpds.setReleaseHelperThreads(20);  
  13. int count=2;  
  14. bcpds.setMinConnectionsPerPartition(minsize/count);  
  15. bcpds.setMaxConnectionsPerPartition(maxsize/count);  
  16. bcpds.setPartitionCount(count);  

 

    不知道用过该连接池的用户有何高见,请不吝赐教。

你可能感兴趣的:(BoneCP数据库连接池性能上的缺点?)