更新时间:2022-06-13 GMT+08:00

SMP手动调优建议

如果想手动进行SMP调优,需要熟练掌握SMP相关参数配置建议,并了解本节内容。

使用限制

系统的CPU、内存、I/O和网络带宽等资源充足。SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致性能的劣化。同时,SMP计划的生成时间较串行要长。因此,在短查询为主的TP类业务中,或者出现资源瓶颈的情况下,建议关闭SMP,即设置query_dop=1。

配置步骤

  1. 观察当前系统负载情况,如果系统资源充足(资源利用率小于50%),执行步骤2;否则退出。
  2. 设置query_dop=1(默认值),利用explain打出执行计划,观察计划是否符合SMP适用场景与限制小节中的适用场景。如果符合,进入下一步。
  3. 设置query_dop=-value,在考虑资源情况和计划特征基础上,限制dop选取的范围为[1,value]。
  4. 设置query_dop=value,不考虑资源情况和计划特征,强制选取dop为1或value。
  5. 在符合条件的查询语句执行前设置合适的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并行度的计划。