GaussDB(DWS)性能调优:锁等待导致的业务阻塞问题处理建议

首先推荐使用《GaussDB(DWS)运维 — 锁等待监控》中的方式做集群的锁等待信息监控,以方便问题定位分析

 

更直观的锁等待关系链请使用视图pgxc_lockwait_detail

 

【场景1】DDL语句(ALTER TABLE语句以及TRUNCATE语句)的锁大量阻塞了其它的查询,建议集群级设置参数ddl_select_concurrent_mode解决此问题

  • 参数含义:通过该参数控制DDL语句和SELECT语句并发的模式。该参数仅8.1.3.320、8.2.1及以上集群版本支持。
  • 默  认 值:none
  • 取值范围:枚举&组合型
    none        :表示该参数不生效,DDL语句和SELECT语句不能并发,保持锁等待状态。
    truncate   :表示TRUNCATE语句被SELECT语句阻塞时,TRUNCATE会中断SELECT语句,优先执行,其它DDL语句和SELECT语句保持锁等待状态。
    exchange:表示EXCHANGE语句被SELECT语句阻塞时,EXCHANGE会中断SELECT语句,优先执行,其它DDL语句和SELECT语句保持锁等待状态。
    也可以写成truncate,exchange,表示TRUNCATE和EXCHANGE语句被SELECT语句阻塞时,二者会中断SELECT语句,优先执行。
  • 影响范围:ALTER TABLE语句以及truncate语句操作目标表的查询语句
  • 参数建议:设置为‘truncate,exchange’

【场景2】其它语句阻塞了DDL语句,而DDL语句又进一步阻塞了其它语句,建议集群级设置参数ddl_lock_timeout解决此问题

  • 参数含义:指定DDL语句申请锁的等待时间
  • 默 认   值:为0,即会一直等待,直到锁等待超时(一般为20min)
  • 取值范围:整型,0 ~ INT_MAX,单位为毫秒(ms)
  • 影响范围:ALTER TABLE语句以及truncate语句
  • 参数建议:设置为10000~30000之间,即DDL语句申请锁是的等待时间在10s到30s之间,超时会报错

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317390.html

(0)
上一篇 12小时前
下一篇 12小时前

相关推荐

发表回复

登录后才能评论