SMP手动调优建议
如果想手动进行SMP调优,需要熟练掌握SMP相关参数配置建议,并了解本节内容。
使用限制
系统的CPU、内存、I/O和网络带宽等资源充足。SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致性能的劣化。同时,SMP计划的生成时间较串行要长。因此,在短查询为主的TP类业务中,或者出现资源瓶颈的情况下,建议关闭SMP,即设置query_dop=1。
配置步骤
- 观察当前系统负载情况,如果系统资源充足(资源利用率小于50%),执行步骤2;否则退出。
- 设置query_dop=1,利用explain打出执行计划,观察计划是否符合SMP适用场景与限制小节中的适用场景。如果符合,进入下一步。
- 设置query_dop=-value,在考虑资源情况和计划特征基础上,限制dop选取的范围为[1,value]。
- 设置query_dop=value,不考虑资源情况和计划特征,强制选取dop为1或value。
- 在符合条件的查询语句执行前设置合适的query_dop值,在语句执行结束后关闭query_dop。例如,
1 2 3 4
SET query_dop = 0; SELECT COUNT(*) FROM t1 GROUP BY a; ...... SET query_dop = 1;
- 资源许可的情况下,并行度越高,性能提升效果越好。
- SMP并行度支持会话级设置,推荐客户在执行符合要求的查询前,打开smp,执行结束后,关闭smp。以免在业务峰值时,对业务造成冲击。
- SMP自适应(query_dop<=0)依赖资源管理,如果资源管理禁用(use_workload_manager为off),那么只会产生1或2并行度的计划。