Numa对MySQL多实例性能测试报告
来源:互联网 发布:国电南瑞 知乎 编辑:程序博客网 时间:2024/05/22 03:19
本文转载自:http://blog.chinaunix.net/uid-26896862-id-3278913.html
分类: Mysql/postgreSQL
目的
由于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 <full-duplex>
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 CPU。SSD的读写性能可以参照:《Virident FlashMAX测试》。
测试工具及条件
测试工具为percona提供的TPCC-MySQL基准测试工具,测试环境如下所示,数据大小大约为30G。并且所有实例的测试条件相同。
[warehouse]: 300
[connection]: 32
[rampup]: 1200 (sec.)
[measure]: 1800 (sec.)
测试方案
测试numa对MySQL多实例性能影响,通过对numa将MySQL绑定在不同的CPU节点上,并且采用绑定的内存分配策略,强制在本节点内分配内存。具体测试如下:
1、关闭numa(numa= interleave),MySQL单实例;开启numa(numa=default),MySQL单实例,进行性能测试,比较测试结果。
2、numa隔离MySQL两个实例,instance1绑定到0,instance2绑定到1;无numa隔离的MySQL两个实例,进行性能测试,比较测试结果。
3、numa隔离MySQL四个实例,instance1、instance3绑定到0,instance2、instance4绑定到1;以及无numa隔离的MySQL四个实例,进行性能测试,比较测试结果。
测试结果
1、MySQL单实例
关闭numa(numa = interleave),与开启numa(numa = default)的MySQL性能测试结果如下所示:
测试
TpmC
关闭numa(numa = interleave)
20570.699 TpmC
开启numa(numa =default)
20341.533 TpmC
2、MySQL两个实例
numa隔离MySQL两个实例,instance1绑定到0,instance2绑定到1,与无numa隔离的MySQL两个实例的性能测试结果如下所示:
测试
instance1
instance2
numa隔离
16307.533 TpmC
14678.600 TpmC
无numa隔离
15059.134 TpmC
15089.167 TpmC
3、MySQL四个实例
numa隔离MySQL四个实例,instance1、instance3绑定到0,instance2、instance4绑定到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利用率不高的问题。
此外,从测试结果来看,在相同测试条件下和测试压力下,CPU:0上MySQL的性能明显优于CPU:1上MySQL的性能。至于原因,仍然需要进一步的测试。
参考资料
1、《MySQL单机多实例方案》http://www.hellodb.net/2011/06/mysql_multi_instance.html
注:近期参加MySQL运维学习,老师推荐该文章作为学习和技术提高的扩展阅读,先记录到自己的博客中,随后慢慢消化、学习、提高。本文与MySQL数据库 “性能优化”主题有关。
- Numa对MySQL多实例性能测试报告
- 性能测试报告(实例)
- 性能测试报告(实例)
- 性能测试报告实例
- MYSQL数据库性能测试报告
- MYSQL数据库性能测试报告
- CGroup控制MySQL多实例测试报告
- Tpcc-MySQL对mysql数据库进行性能测试报告、分析及使用gnuplot生成图表展示
- MySQL数据库HandlerSocket的性能测试报告
- 性能测试报告
- MySQL测试报告
- mysql&numa&swap
- 中国银行性能测试报告
- ASP程序性能测试报告
- asp性能测试报告
- 性能测试报告模板
- https的性能测试报告
- Firefly 性能测试报告
- 10大iOS开发者最喜爱的库
- 一些有用的网址
- python的列表,元组,集合,字典
- HBase使用场景和成功案例 (转)
- 黑马程序员-java——数组与List
- Numa对MySQL多实例性能测试报告
- org.springframework.dao.InvalidDataAccessApiUsageException
- 初探boost之timer库学习笔记
- java对象操作、DOM4J操作XML以及java反射效率的对比
- 安卓4.2上弹出消息框 点击后不消失的解决办法
- java.io.IOException: Malformed \uxxxx encoding.
- 检测网络端口命令
- hdu 2852 树状数组查询元素位置
- MySQL Blob Compression performance benefits