Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1743807
  • 博文数量: 107
  • 博客积分: 1715
  • 博客等级: 上尉
  • 技术积分: 3168
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-18 18:42
个人简介

阿里巴巴DBA,原去哪儿网DBA。专注于MySQL源码研究、DBA运维、CGroup虚拟化及Linux Kernel源码研究等。 github:https://github.com/HengWang/ Email:king_wangheng@163.com 微博 :@王恒-Henry QQ :506437736

文章分类

全部博文(107)

文章存档

2014年(2)

2013年(38)

2012年(67)

分类: 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.)

    此外,设计不同的连接数connection,测试MySQL的性能与连接数的关系。测试的参数如下所示: 

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

    从以上测试结果可以看出,当warehouse数较少,数据量较小时,测试的性能较高。这是由于数据全部被加载到innodb buffer pool中进行操作,相当于内存操作。而当数据量增加到300时,超出了innodb_buffer_pool_size的大小,性能会下降很多,此时测试的瓶颈集中到IO。而当warehouse数增加到500,数据量非常大的情况下,MySQL的性能仍然会降低很多,这是由于数据量的增大,MySQL对数据记录的寻址等一系列问题都会损失很大的性能。

不同的连接数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

    同以上结果可以看出,当线程连接数为32时,MySQL的吞吐量最大,但随着连接数的不断增加,MySQL的性能将不断降低。

结论

    从以上测试可知,对于单机两个实例的测试可知,当测试数据量小于innodb_buffer_pool_size的大小时,数据库的性能较高,而增加数据量的情况下,MySQL数据库的性能明显降低。随着数据量的不断增加,MySQL的性能不断下降。这是由于数据寻址增加,内存换入换出增多,导致MySQL数据库性能降低。

在不同连接数的测试中,两个实例的连接数分别为32时,MySQL的性能达到最大,随着连接数connection的不断增加,MySQL的性能不断降低。

 

阅读(4058) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~