下面是几个测试模式对比:
| 模式 | 配置参数 | 
| Percona 5.6.16-nothp | 未开启 thread pool 模式 | 
| CASE0-thp(128)-oversub(16)-max(2048) | thread_handling = pool-of-threads thread_pool_size = 128 thread_pool_oversubscribe = 16 thread_pool_max_threads = 2048 | 
| CASE1-thp(default) | thread_handling = pool-of-threads 其他默认设置 | 
| CASE2-thp(default)-oversub(10) | thread_handling = pool-of-threads thread_pool_oversubscribe = 10 其他默认设置 | 
| CASE3-thp(default)-oversub(10)-max(10000) | thread_handling = pool-of-threads thread_pool_oversubscribe = 10 thread_pool_max_threads = 100000 其他默认设置 | 
| CASE4-thp(default)-oversub(16) | thread_handling = pool-of-threads thread_pool_oversubscribe = 16 其他默认设置 | 
| CASE5-thp(128)-oversub(16)-max(100000) | thread_handling = pool-of-threads thread_pool_size = 128 thread_pool_oversubscribe = 16 thread_pool_max_threads = 100000 | 
仍然采用tpcc-mysql这个测试工具,基准值:
| 测试Warehouse数: 100 | 
| warmup time: 60s | 
| run time: 1200s | 
| 并发线程数: ~ 1920 | 
测试环境信息:
| 测试机 | DELL PE R710 | 
| CPU | E5620 @ 2.40GHz(4 core, 8 threads, L3 Cache 12 MB) * 2 | 
| 内存 | 32G(4G * 8) | 
| RAID卡 | PERC H700 Integrated, 512MB, BBU, 12.10.1-0001 | 
| 系统 | Red Hat Enterprise Linux Server release 6.4 (Santiago) | 
| 内核 | 2.6.32-358.el6.x86_ #1 SMP | 
| raid级别 | raid 0 | 
| 文件系统 | xfs | 
| 硬盘 | SSD: Intel 520系列SSD, 800G * 1 | 
Percona版本号:5.6.16-.2-rel.2-log Percona Server with XtraDB (GPL), Release rel.2, Revision 569,Percona相关的关键配置有:
| innodb_buffer_pool_size = 26G | 
| innodb_flush_log_at_trx_commit = 1 | 
测试脚本可参考:MySQL压力测试经验
测试结果见下:
 
针对这个测试结果,我们可以得到一些结论:
| 1、通常地,只需要开启 pool-of-threads 模式就可以; | 
| 2、可以根据实际压力情况,适当调整 thread_pool_oversubscribe 选项以提升 TPS,这个选项值设置范围一般在 3~20; | 
| 3、thread-pool-size默认值是逻辑CPU个数,最大值是 128,不建议调整或显式设置,如果显式设定 thread-pool-size 的值,可能会带来反效果; | 
| 4、thread_pool_max_threads 默认值是 100000,强烈不建议修改。 | 
综上,对于Thread Pool,我们一般建议设置下面2个选项就足够了:
| thread_handling = pool-of-threads | 
| thread_pool_oversubscribe = 10 #这个值建议在3~20间,不清楚的话,无需设置 | 
备注:启用Thread Pool后,想要终止某个查询的话,要这么写KILL QUERY connection_id,而不是写成 KILL connection_id,否则就会导致整个连接被KILL。
如果还有什么问题,欢迎加入我的QQ群( 272675472 )讨论。
下载本文