阿里巴巴DBA,原去哪儿网DBA。专注于MySQL源码研究、DBA运维、CGroup虚拟化及Linux Kernel源码研究等。 github:https://github.com/HengWang/ Email:king_wangheng@163.com 微博 :@王恒-Henry QQ :506437736
分类: Mysql/postgreSQL
2012-04-27 11:38:48
整个测试过程,采用的预热时间、测试时间、warehouse数目和测试数据集(除innodb_log_file_size测试外)都是一致的。预热时间为:1800;测试时间:3600;warehouse:300。其中预热时间和测试时间是之前测试时,得到的经验值。
此外,信息收集主要包括tpcc测试的结果、iostat、vmstat、mysqladmin等得到的结果。为了同意收集这些信息,本人写了一个脚本run.sh,类似于scripts下的run.sh。脚本可以参考TPCC-MySQL数据采集脚本。
1、innodb_buffer_pool_size测试
参数设置
其他参数的设置为:
innodb_additional_mem_pool_size =256 innodb_log_file_size = 4G innodb_log_buffer_size = 512M innodb_max_dirty_pages_pct=75 innodb_thread_concurrency=16 |
测试结果及分析
测试innodb_buffer_pool_size分别为24G、32G、36G下,percona server的性能。
(1)、innodb_buffer_pool_size为24G情况下得出的TPmC结果:
[transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 100.00% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 100.00% [OK]
26115.449 TpmC |
性能分析如图:
(2)innodb_buffer_pool_size为32G情况下得出的TPmC结果:
[transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 100.00% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 100.00% [OK]
27191.732 TpmC |
性能分析如图:
(3)innodb_buffer_pool_size为36G情况下得出的TPmC结果:
[transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 100.00% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 100.00% [OK]
23416.000 TpmC |
性能分析如图:
测试结论
innodb_buffer_pool_size在32G时,大约为内存的66.7%,此时性能最优。并且,从分析图来看,性能还处于上升阶段,原因是内存加大,预热时间不足导致。在36G时,性能有明显的降低。分析vmstat的统计数据时,发现测试中出现了大量的swap,从而导致了性能的降低。