Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1686954
  • 博文数量: 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-07-18 16:29:28

目的

由于MySQL采用了线程模式,对于NUMA特性的支持并不好。如果单机运行多个MySQL实例,可以将MySQL绑定在不同的CPU节点上,并且采用绑定的内存分配策略,强制在本节点内分配内存,这样既可以充分利用硬件的NUMA特性,又避免了单实例MySQL对多核CPU利用率不高的问题。

测试环境:

         测试系统环境如下所示:

 

Summary:

Dell R610, 1 x Xeon E5645 2.40GHz, 47.2GB / 48GB 1333MHz DDR3

System:

Dell PowerEdge R610 (Dell 08GXHX)

Processors:

1 (of 2) x Xeon E5645 2.40GHz 5860MHz FSB (HT enabled, 6 cores, 24 threads)

Memory:

47.2GB / 48GB 1333MHz DDR3 == 6 x 8GB, 6 x empty

Disk:

sda (scsi0): 1.2TB (17%) JBOD == 1 x DELL-PERC-H700

Disk-Control:

megaraid_sas0: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator], Package 12.10.4-0001, FW 2.100.03-1584, BIOS 3.18.00_4.09.05.00_0x0416A000, Cache 1GB, BBU

Chipset:

Intel 82801IB (ICH9)

Network:

em1 (bnx2): Broadcom NetXtreme II BCM5709 Gigabit, d4:be:d9:f5:62:50, 1000Mb/s

OS:

CentOS 6.2 (Final), Linux 2.6.32-220.23.1.el6.x86_64 x86_64, 64-bit

        

此外,Virident FlashMAX官方提供的参数如下所示:

 

Capacity (GB)

1000

NAND Flash

MLC

Form Factor

Low Profile (half height, half length)

Read Performance

1.3 GB/s (4KB blocks)

325,000 IOPS (4KB blocks)

1,000,000 IOPs (0.5KB blocks)

Sustained Mixed Performance (75:25 r/w)

850 MB/s (4 KB blocks)

280,000 IOPS (4KB blocks)

Access Latency

19us

Lifetime (PB written to flash)

10, 15

 

以上测试系统可知,物理机器配置为两个物理CPU,每个CPU上有6核心,开启超线程状态下,显示为24 CPUSSD的读写性能可以参照:《Virident FlashMAX测试》。

 

测试工具及条件

测试工具为percona提供的TPCC-MySQL基准测试工具,测试环境如下所示,数据大小大约为30G。并且所有实例的测试条件相同。

 

 [warehouse]: 300

 [connection]: 32

 [rampup]: 1200 (sec.)

 [measure]: 1800 (sec.)

 

测试方案

         测试numaMySQL多实例性能影响,通过对numaMySQL绑定在不同的CPU节点上,并且采用绑定的内存分配策略,强制在本节点内分配内存。具体测试如下:

1、关闭numanuma= interleave),MySQL单实例;开启numanuma=default),MySQL单实例,进行性能测试,比较测试结果。

2numa隔离MySQL两个实例,instance1绑定到0instance2绑定到1;无numa隔离的MySQL两个实例,进行性能测试,比较测试结果。

3numa隔离MySQL四个实例,instance1instance3绑定到0instance2instance4绑定到1;以及无numa隔离的MySQL四个实例,进行性能测试,比较测试结果。

 

测试结果

1MySQL单实例

关闭numanuma = interleave),与开启numanuma = default)的MySQL性能测试结果如下所示:

 

测试

TpmC

关闭numanuma = interleave

20570.699 TpmC

开启numanuma = default

20341.533 TpmC

 

2MySQL两个实例

numa隔离MySQL两个实例,instance1绑定到0instance2绑定到1,与无numa隔离的MySQL两个实例的性能测试结果如下所示:

 

测试

instance1

instance2

numa隔离

16307.533 TpmC

14678.600 TpmC

numa隔离

15059.134 TpmC

15089.167 TpmC

 

3MySQL四个实例

numa隔离MySQL四个实例,instance1instance3绑定到0instance2instance4绑定到1,与无numa隔离的MySQL四个实例的性能测试结果如下所示:

 

测试

instance1

instance2

instance3

instance4

numa隔离

10623.866 TpmC

10325.767 TpmC

10623.600 TpmC

10287.800 TpmC

numa隔离

10268.100 TpmC

10316.400 TpmC

10323.134 TpmC

10260.200 TpmC

 

对比图如下所示:

 

 

测试结论

         经过测试,从而验证了单机运行多个MySQL实例,将MySQL绑定在不同的CPU节点上,并且采用绑定的内存分配策略,强制在本节点内分配内存,这样既可以充分利用硬件的NUMA特性,又避免了单实例MySQL对多核CPU利用率不高的问题。

         此外,从测试结果来看,在相同测试条件下和测试压力下,CPU0MySQL的性能明显优于CPU1MySQL的性能。至于原因,仍然需要进一步的测试。

 

参考资料

1、《MySQL单机多实例方案》

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