时间: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) |
DBCP | 10 | 1000 | 251 | 1328863445815.00 | 1328863446066.00 | 251 | 0.0251 |
252 | 1328863466569.00 | 1328863466821.00 | |||||
251 | 1328863477174.00 | 1328863477425.00 | |||||
254 | 1328863487555.00 | 1328863487809.00 | |||||
247 | 1328863499474.00 | 1328863499721.00 | |||||
C3P0 | 10 | 1000 | 781 | 1328863372064.00 | 1328863372845.00 | 802.8 | 0.08028 |
789 | 1328863385489.00 | 1328863386278.00 | |||||
879 | 1328863401335.00 | 1328863402214.00 | |||||
773 | 1328863413608.00 | 1328863414381.00 | |||||
792 | 1328863424693.00 | 1328863425485.00 | |||||
TomcatJDBC | 10 | 1000 | 191 | 1328863272642.00 | 1328863272833.00 | 191.8 | 0.01918 |
197 | 1328863303126.00 | 1328863303323.00 | |||||
187 | 1328863313262.00 | 1328863313449.00 | |||||
195 | 1328863324253.00 | 1328863324448.00 | |||||
189 | 1328863334700.00 | 1328863334889.00 |
DB POOL | 线程 数量 | 单线程 执行次数 | 消耗时间 (ms) | 开始时间 (ms) | 结束时间 (ms) | 平均消耗 时间(ms) | 平均单条 时间(ms) |
DBCP | 100 | 1000 | 786 | 1328862922748.00 | 1328862923534.00 | 810.4 | 0.008104 |
853 | 1328862939832.00 | 1328862940685.00 | |||||
810 | 1328862955354.00 | 1328862956164.00 | |||||
807 | 1328862981344.00 | 1328862982151.00 | |||||
796 | 1328862994825.00 | 1328862995621.00 | |||||
C3P0 | 100 | 1000 | 2517 | 1328863021884.00 | 1328863024401.00 | 2248.8 | 0.022488 |
2340 | 1328863040949.00 | 1328863043289.00 | |||||
1968 | 1328863075044.00 | 1328863077012.00 | |||||
2256 | 1328863092216.00 | 1328863094472.00 | |||||
2163 | 1328863114138.00 | 1328863116301.00 | |||||
TomcatJDBC | 100 | 1000 | 752 | 1328863155803.00 | 1328863156555.00 | 726 | 0.00726 |
725 | 1328863171617.00 | 1328863172342.00 | |||||
694 | 1328863183983.00 | 1328863184677.00 | |||||
703 | 1328863195628.00 | 1328863196331.00 | |||||
756 | 1328863209798.00 | 1328863210554.00 |