ITPub博客

首页 > 数据库 > > 租户管理-异常处理(查询规则)

租户管理-异常处理(查询规则)

作者:GaussDB_数据库 时间:2020-01-14 15:47:11 0 删除 编辑

背景信息

GaussDB 200支持对异常的作业执行终止或者降级操作。系统通过设置控制组参数来进行异常处理。异常阈值如表1中所示。

表1 异常阈值类型

异常阈值类型

说明

取值范围(0表示取消设置)

支持的异常操作

blocktime

作业的阻塞时间,单位秒。包括全局并发排队以及局部并发排队的总时间。

0~UINT_MAX

abort

elapsedtime

作业的已被执行时间,单位秒。从开始执行到当前所消耗的时间。

0~UINT_MAX

abort

allcputime

作业在所有DN上执行时所耗费的CPU总时间,单位秒。

0~UINT_MAX

abort,penalty

cpuskewpercent

作业在DN上执行时的CPU时间的倾斜率,依赖于qualificationtime的设置。

0~100

abort,penalty

qualificationtime

检查作业执行cpu倾斜率的间隔时间,单位秒,需同cpuskewpercent一起设置。

0~UINT_MAX

none

spillsize

作业在DN上下盘的数据量,单位MB。

0~UINT_MAX

abort

broadcastsize

作业在DN上算子大表广播数据量,单位MB。

0~UINT_MAX

abort

当作业执行超过以上阈值中的某一个时,就会触发以下任意异常动作类型的操作。

  • abort

    作业满足设置的异常阈值后执行终止作业,可以通过参数“-a”或“--abort”指定。

  • penalty

    作业执行中超过设置的异常阈值后对作业执行降级操作,可以通过“--penalty”参数指定。

    • 降级操作只能对Class控制组下的Timeshare分组(Low、Medium、High或Rush控制组)进行设置。
    • 降级操作每次降一级,例如:作业开始时是class:Rush,满足一次降级条件后降级为class:High, 第二次满足降级为class:Medium,以此类推,直到降到class:Low为止。

qualificationtime为检查作业执行CPU倾斜率的间隔时间,单位为秒。

  • qualificationtime依赖于DN收集CPU使用率的间隔时间。
  • DN收集CPU倾斜率的间隔时间由GUC参数cpu_collect_timer控制。cpu_collect_timer单位是秒,默认为30秒,范围1~INT_MAX,设置的太小会影响语句执行的效率,太大会影响异常处理的精度。
  • qualificationtime一般可设置为等于cpu_collect_timer或者cpu_collect_timer的倍数。

前提条件

  • 已参考8了解控制组的分类以及控制方式。
  • 已熟悉gs_cgroup和gs_ssh的使用。

操作步骤

 说明:

在GaussDB 200中,需要在每个集群节点上执行控制组的创建、更新、删除操作,才能实现对整个集群资源的控制,所以下述步骤中都使用gs_ssh命令执行。

  1. 以操作系统用户omm登录GaussDB 200集群任一主机。执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
  2. 设置“class_a”下属“workload_a1”的作业阻塞到1200秒或执行2400秒时执行终止动作。
    gs_ssh -c "gs_cgroup -S class_a -G workload_a1 -E "blocktime=1200,elapsedtime=2400" -a"
    设置“class_a”下属“workload_a2”的作业下盘数据量达到256MB或大表广播数据量达到100MB时执行终止动作。
  3. gs_ssh -c "gs_cgroup -S class_a  -G workload_a2 -E "spillsize=256,broadcastsize=100" -a"
    设置“class_b”下属“workload_b1”的作业在所有DN上CPU总时间到达100s时执行降级动作。
  4. gs_ssh -c "gs_cgroup -S class_b -G workload_b1 -E "allcputime=100" --penalty"
    设置“class_b”下属“workload_b2”的作业在所有DN上执行时间到达2400秒,且倾斜率达到90时执行降级动作。
  5. gs_ssh -c "gs_cgroup -S class_b -G workload_b2 -E "qualificationtime=2400,cpuskewpercent=90" --penalty"
     说明:
    • 作业执行过程中,如果修改了异常阈值,之后执行的语句会按照新的异常阈值进行处理,但是对于正在执行的语句不一定生效:
      • 对于已经被执行引擎调度的作业不会使用新的异常阈值。
      • 对于没有被执行引擎调度的作业,如果异常类型为spillsize、broadcastsize,使用新的异常阈值进行处理;如果异常类型为blocktime、elapsedtime、allcputime、cpuskewpercent,依然使用旧的异常阈值进行处理。
    • 当作业执行超过异常阈值时,触发异常动作不一定立即生效,会受内部中断信号处理的影响。

获取指定资源池的查询规则

  1. 使用gsql连接数据库。
  1. 查看某个资源池关联的查询规则信息
    SELECT * FROM gs_respool_exception_info('default_pool');
    name         |    class     | workload |       rule        |  type   | value
    ---------------------+--------------+----------+-------------------+---------+-------
    DefaultClass:Medium | DefaultClass | Medium | BlockTime | Abort |
    DefaultClass:Medium | DefaultClass | Medium | ElapsedTime | Abort | 0
    DefaultClass:Medium | DefaultClass | Medium | AllCpuTime | Abort |
    DefaultClass:Medium | DefaultClass | Medium | QualificationTime | Abort | 0
    DefaultClass:Medium | DefaultClass | Medium | CPUSkewPercent | Abort |
    DefaultClass:Medium | DefaultClass | Medium | BlockTime | Penalty | 0
    DefaultClass:Medium | DefaultClass | Medium | ElapsedTime | Penalty |
    DefaultClass:Medium | DefaultClass | Medium | AllCpuTime | Penalty | 0
    DefaultClass:Medium | DefaultClass | Medium | QualificationTime | Penalty | 1800
    DefaultClass:Medium | DefaultClass | Medium | CPUSkewPercent | Penalty | 30


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3126489/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19305