阿里巴巴DBA,原去哪儿网DBA。专注于MySQL源码研究、DBA运维、CGroup虚拟化及Linux Kernel源码研究等。 github:https://github.com/HengWang/ Email:king_wangheng@163.com 微博 :@王恒-Henry QQ :506437736
分类: Mysql/postgreSQL
2012-09-06 16:38:42
目的
根据现有硬件环境下,测试MySQL两个实例下不同数据量、不同连接数connection下,MySQL数据库的性能。便于DBA和开发人员根据应用需求,安装和部署。
实验测试环境
1、实验测试硬件环境
Summary: HP DL360 G7, 1 x Xeon E5645 2.40GHz, 47.2GB / 48GB 1333MHz DDR3 System: HP ProLiant DL360 G7 Processors: 1 (of 2) x Xeon E5645 2.40GHz 133MHz FSB (HT enabled, 6 cores, 24 threads) Memory: 47.2GB / 48GB 1333MHz DDR3 == 6 x 8GB, 12 x empty |
2、实验测试软件环境
实验测试的软件环境主要包括,操作系统、MySQL数据库以及测试工具,具体内容如下:
操作系统:
CentOS 5.6 (Final), Linux 2.6.18-238.19.1.el5 x86_64, 64-bit
MySQL版本:Percona Server 5.5.20
TPC-C测试工具:tpcc-mysql
其中TPC-C测试工具的安装和使用说明文档参照相关内容。
测试方案
实验方案主要对MySQL两个实例数进行测试,主要为了探索MySQL不同数据量warehouse,不同连接数connection下,对MySQL性能的影响。主要测试方案如下:
在测试时,设计三种不同的warehouse数,分别用于测试数据不同加载程度的情况下,MySQL的性能。
测试的参数如下所示:
Parameters |
Value |
Value |
Value |
[warehouse] |
50 |
300 |
500 |
[connection] |
16 |
16 |
16 |
[rampup] |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
[measure] |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
Parameters |
Value |
Value |
Value |
Value |
[warehouse] |
50 |
50 |
50 |
50 |
[connection] |
16 |
32 |
64 |
96 |
[rampup] |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
[measure] |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
3600 (sec.) |
测试
三种不同的warehouse数的测试结果如下所示:
warehouse |
实例1吞吐量(tpmc) |
实例2吞吐量(tpmc) |
50 |
21490.166 |
20545.533 |
300 |
2774.150 |
2790.617 |
500 |
1257.200 |
1256.433 |
不同的连接数connection的测试结果如下所示:
connection |
16 |
32 |
64 |
96 |
实例1吞吐量(TPmC) |
21490.166 |
30465.334 |
28890.816 |
19151.449 |
实例2吞吐量(TPmC) |
20545.533 |
30466.084 |
29053.334 |
19069.551 |
结论
从以上测试可知,对于单机两个实例的测试可知,当测试数据量小于innodb_buffer_pool_size的大小时,数据库的性能较高,而增加数据量的情况下,MySQL数据库的性能明显降低。随着数据量的不断增加,MySQL的性能不断下降。这是由于数据寻址增加,内存换入换出增多,导致MySQL数据库性能降低。
在不同连接数的测试中,两个实例的连接数分别为32时,MySQL的性能达到最大,随着连接数connection的不断增加,MySQL的性能不断降低。