proxool与Apache DBCP连接池性能评测

来源:互联网 发布:linux mint 输入法 编辑:程序博客网 时间:2024/04/29 21:24

转载 !!!!  这次测试只是自己的兴趣,自认为还比较科学,欢迎指正。

测试条件:
写了两个JSP页面,一个用的proxool连接池,另一个用的tomcat DBCP连接池。
这两个页都执行一样的工作,就是循环100次,每次从mysql里select 一列数据显示在页面上,这一列是20个string。
每次循环都要重新连接数据库。

测试环境:
用Webserver Stress Tool 7.1 模拟10个用户随机访问这两个页。本机tomcat测试。持续一分钟。

初始参数:

proxool的参数:
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<maximum-active-time>60000</maximum-active-time>
DBCP的参数:
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
maxActive="100" maxIdle="30" maxWait="10000"

1、初始测试

测试开始后,CPU很快到100%,然后有一些随机波动。

结果如图:

 


上图反应的是访问这两个页面时的反馈时间:
绿色-proxool
红色-tomcat DBCP

在前面默认的参数下,测试一开始,DBCP要比proxool反应快很多,但10秒钟之后,两者就差不多了。

2、调整参数

现在,我把proxool的<minimum-connection-count>的值调到15,再测,结果如下:

 

 


这时proxool和DBCP已经不分高下。

3、再次调整

我再把proxool的<minimum-connection-count>的值调到25,结果如下:

 

 


这时,proxool对开始时的突然大访问量已经能够比DBCP更好的处理了。

结论:

proxool和tomcat DBCP都是很成熟的连接池,在访问量稳定之后两者性能不相上下。
而突发的大访问量也是可以通过调整参数来很好的处理的。

但考虑到proxool有即时监控连接池状态的功能,而且代码更方便写,还是推荐使用proxool