当前位置:Gxlcms > 数据库问题 > DBCP,C3P0,Tomcat_JDBC 性能及稳定性测试

DBCP,C3P0,Tomcat_JDBC 性能及稳定性测试

时间:2021-07-01 10:21:17 帮助过:7人阅读

1.测试环境:

硬件环境:

数据库服务器:2U*8核 8G内存 
测试服务器:   2U*8核 6G内存

软件环境:

jdk:   

1.6.29

mysql:

5.0.77

mysql_driver:

mysql-connector-java-5.0.8-bin.jar

 

DBCP:

commons-dbcp-1.4.jar

下载地址: http://commons.apache.org/dbcp/

commons-pool-1.5.6.jar

下载地址: http://commons.apache.org/pool/

C3P0:

c3p0-0.9.1.2.jar

下载地址: http://www.mchange.com/projects/c3p0/index.html

log4j-1.2.8.jar(c3p0需要添加此包)

下载地址: http://logging.apache.org/log4j/

 Tomcat_JDBC:

        tomcat-jdbc.jar

下载地址: https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

或者在tomcat安装根目录下的lib目录中直接拿来用之

tomcat-juli.jar

下载地址:(没找到)

在tomcat安装根目录下的bin目录中直接拿来用之

 

配置信息:

数据库连接超时时间设置为:   10年

数据库支持最大连接数设置为:2000

 

初始化连接池大小:10

连接至最小活动线程数:10

连接池最大活动线程数:100

 

其他配置均保持各个连接池的默认配置

 

2.性能测试:  

测试点:

在多线程多任务的条件下,各个连接池获取连接然后马上关闭连接,比较所消耗的时间。

 

在网上看了好多关于数据库连接池方面的测试,

大多数测试过程中,包括了执行sql语句部分,即,创建连接,执行sql语句,关闭连接,

一开始我也是这样测试,

测试过过程中,发现数据很不稳定, 这几个连接池都是忽快忽慢,

经过思考、分析,个人 觉得这样是不准确的,执行sql语句时,测试已经不是数据库连接池的性能了,

完全是数据库驱动程序(例如mysql_driver )和数据库本身的性能,

 

数据库连接池负责的仅仅是建立DataSource,获取(从连接池中获取)Connection,关闭(放回到连接池)Connection,

 

因此,

我在测试时,没有计算初始化连接池(建立DataSource)的时间,而是连接池“获取连接然后马上关闭连接”的时间。

 

测试结果:

 

 

DB POOL线程
数量
单线程
执行次数
消耗时间
(ms)
开始时间
(ms)
结束时间
(ms)
平均消耗
时间(ms)
平均单条
时间(ms)
DBCP1010002511328863445815.001328863446066.002510.0251
2521328863466569.001328863466821.00
2511328863477174.001328863477425.00
2541328863487555.001328863487809.00
2471328863499474.001328863499721.00
C3P01010007811328863372064.001328863372845.00802.80.08028
7891328863385489.001328863386278.00
8791328863401335.001328863402214.00
7731328863413608.001328863414381.00
7921328863424693.001328863425485.00
TomcatJDBC1010001911328863272642.001328863272833.00191.80.01918
1971328863303126.001328863303323.00
1871328863313262.001328863313449.00
1951328863324253.001328863324448.00
1891328863334700.001328863334889.00

 

 

 

DB POOL线程
数量
单线程
执行次数
消耗时间
(ms)
开始时间
(ms)
结束时间
(ms)
平均消耗
时间(ms)
平均单条
时间(ms)
DBCP10010007861328862922748.001328862923534.00810.40.008104
8531328862939832.001328862940685.00
8101328862955354.001328862956164.00
8071328862981344.001328862982151.00
7961328862994825.001328862995621.00
C3P0100100025171328863021884.001328863024401.002248.80.022488
23401328863040949.001328863043289.00
19681328863075044.001328863077012.00
22561328863092216.001328863094472.00
21631328863114138.001328863116301.00
TomcatJDBC10010007521328863155803.001328863156555.007260.00726
7251328863171617.001328863172342.00
6941328863183983.001328863184677.00
7031328863195628.001328863196331.00
7561328863209798.001328863210554.00

 

 

DB POOL线程
数量
单线程
执行次数
消耗时间
(ms)
开始时间
(ms)
结束时间
(ms)
平均消耗
时间(ms)
平均单条
时间(ms)
DBCP150100019191328861533609.001328861535528.001854.40.012363
19571328861551638.001328861553595.00
18691328861746964.001328861748833.00
19161328861791533.001328861793449.00
16111328861832003.001328861833614.00
C3P0150100027261328861869415.001328861872141.002990.80.019939
25701328861895349.001328861897919.00
33421328861912351.001328861915693.00
32181328861929664.001328861932882.00
30981328861950163.001328861953261.00
TomcatJDBC15010008771328861974599.001328861975476.008610.00574
8211328861990969.001328861991790.00
8901328862016507.001328862017397.00
8571328862037077.001328862037934.00
8601328862052490.00

人气教程排行