基于TPCH基准测试,对比SSD和HDD两种情况下MYSQL性能。
1. 前言
TPC(TransactionProcessing Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。
TPCBenchmark H(TPC-H)是一个决策支持的基准测试,是美国事务处理效能委员会(TPC,TransactionProcessing Performance Council) 组织制定的用来模拟决策支持类应用的一个测试集。目前,在学术界和工业界普遍采用它来评价决策支持技术方面应用的性能. 这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用。TPC-H 基准测试包括 22 个查询(Q1~Q22),其主要评价指标是各个查询的响应时间,即从提交查询到结果返回所需时间。基准里选择的查询和组成数据库的数据在商业上都具有广泛的代表性并且易于实现。
本文选择Mysql数据库进行TPCH测试,在此基础上对比厂商SSD和希捷HDD对Mysql性能影响。具体测试机配置如下表。
测试机 | Lenovo RD640 |
CPU | E5-2650 0 @ 2.00GHz(8 core,16 threads,L3 cache 20MB) |
内存 | 64G(16G*4) |
RAID卡 | LSI MegaRAID SAS 9270-8i,1024MB,BBU: Absent,Serial No: SV32790598 |
系统 | CentOS release 6.4 (Final) |
内核 | 2.6.32-358.el6.x86_64 #1 SMP |
IO调度 | cfq |
MySQL版本 | mysql-5.6.26-linux-glibc2.5-x86_64 |
MySQL引擎 | InnoDB |
2. 基准测试
2.1 测试环境
raid级别 | raid 0 |
文件系统 | ext4 |
硬盘 | 7.99 TB(2.0TB*4),RAID0 |
Logical Unit id: 0x6003048006742a001f693d4136dabc1d | |
Serial number: 001dbcda36413d691f002a7406800403 | |
Product: MR9270-8i希捷3.5’ 7200r SATA |
2.2 dd测试结果
SSD RAID0写速度1.5GB/s,读的速度是1.7GB/s
HDD RAID0写速度600 MB/s,读的速度是600 MB/s.
2.3 hdparm测试结果
SSD RAID0读速度1.1GB/s,
HDD RAID0读速度600MB/s
2.4 iozone测试结果
SSD 测试数据
iozone -i 0 -i 1 -i 2 -s 200G -r 4M –f
"Writer report"
"4096"
"209715200" 717178
"Reader report"
"4096"
"209715200" 1564658
"Random read report"
"4096"
"209715200" 639057
"Random write report"
"4096"
"209715200" 933672
3. HDD测试
3.1 测试环境
raid级别 | raid 0 |
文件系统 | ext4 |
硬盘 | 7.99 TB(2.0TB*4),RAID0 |
Logical Unit id: 0x6003048006742a001f693d4136dabc1d | |
Serial number: 001dbcda36413d691f002a7406800403 | |
Product: MR9270-8i希捷3.5’ 7200r SATA | |
测试工具 | tpch |
tpch测试参数:10G | |
MySQL关键选项配置(my.cnf) | innodb_additional_mem_pool_size=16M |
3.2 测试结果
本次测试开始于9月19日18:57,至今尚未完成,根据已经得到的结果推测,本测试至少还要持续三天。已经得到的结果如下:
注:超过3小时的查询被强制结束,没有实际结果。
4. SSD测试
4.1 测试环境
raid级别 | raid 0 |
文件系统 | ext4 |
硬盘 | 256GB*4, RAID0 |
Logical Unit id: 0x600605b09a335c101f6936e7191adedf | |
Serial number: 00dfde1a19e736691f105c339ab00506 | |
Product: SMC2108 | |
测试工具 | tpch |
tpch测试参数:10G | |
MySQL关键选项配置(my.cnf) | innodb_additional_mem_pool_size=16M |
4.2 测试结果
5. 数据分析
5.1 SSD VS SSD
对比SSD RAID0存储在不同内存buffer下的结果,通过图表可以发现内存buffer的提升在SSD存储的情况下对性能提升很小,查询时间基本没有变化。
5.2 SSD VS HDD(buffer小于数据)
对比SSD和HDD在buffer(2G)明显小于数据(10G)的情况下的查询时间,通过图表可以发现,SSD对查询性能的提升非常巨大,多数查询获得10倍以上的性能提升,半数能够获得100倍的性能提升。
注:超过10000秒查询结果的统一设置为10000
5.3 SSD VS HDD(buffer大于数据)
对比SSD和HDD在buffer(26G)明显大于数据(10G)的情况下的查询时间,通过图表可以发现,SSD存储对性能提升很小,查询时间基本没有变化。
6. 参考文档
http://imysql.com/2012/12/21/tpch-for-mysql-manual.html
https://www.percona.com/blog/2008/04/10/tpc-h-run-on-mysql-51-and-60/