BoneCP数据库连接池性能上的缺点?
2015-12-27 01:53
357 查看
测试环境说明:
硬件环境:CPU:1.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启动非常慢,甚至无法启动(Tomcat的TimeOuts参数,我的设置是45s);同时在进行大数据量导入时,数据库操作也非常慢,CPU占用率无明显增加。
2)如果值设置较小,则Tomcat启动正常,但执行速度只比C3P0略快。
3)原以为作为新兴的连接池,会随着版本的升级,性能上会有所完善和改进,不过测试了几个版本的连接池,感觉性能都差不多。用bonecp0.7.0测试时,测试导入10000条数据时,分别用BoneCPv0.7.0及C3P0v0.9.1.2连接池各测试了5次,平均导入时间分别为321.89s、368.506s。BoneCP并无明显的优势。
当然,就以上体验而言,未必说明BoneCP连接池一定有问题,也可能是我在连接池参数上的设置有问题,使用BoneCP0.7.0测试时,我的设置如下:
[java]
view plaincopy
BoneCPDataSource bcpds=new BoneCPDataSource();
bcpds.setDriverClass(driver);
bcpds.setJdbcUrl(url);
bcpds.setUsername(username);
bcpds.setPassword(passwd);
//BoneCP0.7.0
bcpds.setAcquireIncrement(1);
bcpds.setAcquireRetryDelay(10000);
bcpds.setIdleMaxAge(200);
bcpds.setIdleConnectionTestPeriod(100);
bcpds.setStatementsCacheSize(200);
bcpds.setReleaseHelperThreads(20);
int count=2;
bcpds.setMinConnectionsPerPartition(minsize/count);
bcpds.setMaxConnectionsPerPartition(maxsize/count);
bcpds.setPartitionCount(count);
不知道用过该连接池的用户有何高见,请不吝赐教。
测试环境说明:
硬件环境:CPU:1.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启动非常慢,甚至无法启动(Tomcat的TimeOuts参数,我的设置是45s);同时在进行大数据量导入时,数据库操作也非常慢,CPU占用率无明显增加。
2)如果值设置较小,则Tomcat启动正常,但执行速度只比C3P0略快。
3)原以为作为新兴的连接池,会随着版本的升级,性能上会有所完善和改进,不过测试了几个版本的连接池,感觉性能都差不多。用bonecp0.7.0测试时,测试导入10000条数据时,分别用BoneCPv0.7.0及C3P0v0.9.1.2连接池各测试了5次,平均导入时间分别为321.89s、368.506s。BoneCP并无明显的优势。
当然,就以上体验而言,未必说明BoneCP连接池一定有问题,也可能是我在连接池参数上的设置有问题,使用BoneCP0.7.0测试时,我的设置如下:
[java]
view plaincopy
BoneCPDataSource bcpds=new BoneCPDataSource();
bcpds.setDriverClass(driver);
bcpds.setJdbcUrl(url);
bcpds.setUsername(username);
bcpds.setPassword(passwd);
//BoneCP0.7.0
bcpds.setAcquireIncrement(1);
bcpds.setAcquireRetryDelay(10000);
bcpds.setIdleMaxAge(200);
bcpds.setIdleConnectionTestPeriod(100);
bcpds.setStatementsCacheSize(200);
bcpds.setReleaseHelperThreads(20);
int count=2;
bcpds.setMinConnectionsPerPartition(minsize/count);
bcpds.setMaxConnectionsPerPartition(maxsize/count);
bcpds.setPartitionCount(count);
不知道用过该连接池的用户有何高见,请不吝赐教。
相关文章推荐
- 数据库范式(1NF 2NF 3NF BCNF)详解
- 数据库三种完整性
- SQL之用户自定义函数
- oracle数据库操作方式
- 使用node.js的第三方模块Mongoose访问mongodb(六)
- 创建数据库和表
- 使用pg_basebackup搭建PostgreSQL流复制环境
- Jsp+MySQL+Tomcat做的小服务器测试
- ez_SQL 单例
- SQL Server用户自定义函数
- centos6.7安装oracle 12c r1 (二)
- 打造先进的内存KV数据库-3 最终选择-C & B-Tree
- 升级Win2010后, 打开SQL2008 附加数据库提示 5120错误
- oracle分页显示方法 rownum的使用
- 详解SQL死锁检测的方法
- 升级和卸载Oracle数据库软件的命令整理
- Linux系统下Oracle数据库的安装和启动关闭操作教程
- Oracle数据库中的基本建库操作详解
- Oracle数据库中的控制文件管理以及常用参数设置
- Oracle数据库中表空间的基本管理操作小结