更新时间:2024-10-08 GMT+08:00

异常规则

功能介绍

在GaussDB(DWS)数据库中需要运行复杂多样的业务语句,部分不合理业务会耗费大量的资源进行计算,最终可能降低整个数据库的性能。对此,GaussDB(DWS)支持用户自定义配置多种异常规则,系统会自动对满足异常规则的作业执行终止/降级操作,维持系统的稳定性。用户可以通过SQL语法配置符合集群资源情况以及业务情况的异常规则组合,关联到资源池即可对相应资源池中的作业生效。如果用户未配置自定义规则,系统支持默认异常规则来保证资源极限情况下系统的稳定性。

图1 异常规则
  • 该特性仅8.2.0及以上集群版本支持,其中“单个DN最大带宽”异常规则仅8.2.1及以上集群版本支持。
  • 8.2.1集群版本支持降级异常规则,所有异常规则都支持降级行为,降级后仅网络资源抢占降至低优先级:在正常查询无网络请求时,才会调度降级查询的网络请求。
  • 默认异常规则仅8.2.0及以上集群版本中生效,升级到8.2.0及以上集群版本时默认异常规则不会生效,用户可自行创建所需规则。
  • 9.1.0.100集群版本新增默认异常规则default_memsize,但仅在新安装的9.1.0.100及以上集群版本中生效。升级到至9.1.0.100及以上集群版本时默认异常规则不会生效,用户可自行创建所需规则。
  • 同一个资源池可以关联多组规则,资源池关联的多组不同的异常规则以“或”的关系生效,满足其中一组的所有条件即可生效。例如,资源池关联两组规则,一组指定elapsedtime=2400, 另一组指定elapsedtime=1200,memsize=2000,那么执行中的作业,满足执行时间达到1200秒且内存使用达到2000MB时,或者执行时间达到2400秒时,都会触发规则终止作业。
  • 同一组异常规则中的多个规则以“且”的关系生效,例如:同时设置执行时间elapsedtime=1000,内存大小memsize=500。表示一个作业,执行时间达到1000秒且内存使用达到500MB时,才会终止该作业。仅触发其中一个不会生效。
  • 默认异常规则,当用户未关联资源池,或者用户所关联资源池未配置异常规则时默认生效;当用户所关联的资源池关联用户所指定规则时,以用户所关联规则为准。

自定义异常规则和默认异常规则

GaussDB(DWS)当前版本支持的自定义异常规则和默认异常规则如下表所示:

表1 自定义异常规则类型

异常阈值类型

说明

取值范围(-1表示取消设置,不支持设置为0)

支持的异常操作

阻塞时间

作业的阻塞时间,单位秒。包括全局并发排队以及局部并发排队的总时间。如果语句中包含子语句,则每个语句排队的时间都计算在内。

-1或1~INT64_MAX-1

终止/降级

执行所消耗时间

作业的已被执行时间,单位秒。从开始执行到当前所消耗的时间。如果语句中包含子语句,则每个语句执行的时间都计算在内。

-1或1~INT64_MAX-1

终止/降级

所有DN上CPU总时间

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

-1或1~INT64_MAX-1

终止/降级

所有DN上CPU总时间倾斜率

作业在DN上执行时的CPU时间的倾斜率,需要同elapsedtime一同设置。代表作业执行满足elapsedtime时间之后,开始检测作业CPU时间的倾斜率,每5s检测一次。

-1或1~100

终止/降级

DN平均消耗CPU占比

作业在所有DN上执行时的平均CPU使用率。

-1或1~100

终止/降级

单DN算子下盘大小

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

-1或1~INT64_MAX-1

终止/降级

单个DN上最大带宽

作业在单个DN上最大可占用的网络带宽,单位MB。

-1或1~INT64_MAX-1

终止/降级

表2 默认异常规则列表

默认异常规则名称

说明

支持的异常操作

default_cpu_percent

当集群中有多个作业在运行,资源池CPU使用率达到90%时开始检测(若未配置资源池,则该值即为整个集群CPU使用率),此时如果单个作业的运行时间达到15min并且该作业CPU平均使用率达到50%以上时触发。

终止

default_spillsize

当集群中作业运行时,单个DN的下盘大小达到整个实例空间的1/10时触发。

终止

default_memsize

作业在单个DN上使用的内存大小达到默认集群所有DN最小可用内存的80%以上时触发。该规则仅9.1.0.100及以上集群版本支持。

终止

新建异常规则

  1. 登录GaussDB(DWS)管理控制台。
  2. 在集群列表中单击指定集群名称,进入“基本信息”页面。
  3. 左导航栏单击“资源管理 ”,切换至“异常规则”页签。
  4. 单击“添加”按钮添加异常规则。

    图2 添加异常规则

  5. 确认无误后,单击“确定”。

    • 异常规则新建完不会立即生效,需要绑定到相关资源池。请参见1.关联异常规则
    • 8.2.1集群版本支持降级异常规则,所有异常规则都支持降级行为,降级后仅网络资源抢占降至低优先级:在正常查询无网络请求时,才会调度降级查询的网络请求。

编辑异常规则

  1. 登录GaussDB(DWS)管理控制台。
  2. 在集群列表中单击指定集群名称,进入“基本信息”页面。
  3. 左导航栏单击“资源管理 ”页签,切换至“异常规则”页签。
  4. 单击指定异常规则所在行操作列的“编辑”按钮编辑异常规则。

    • 编辑已有异常规则,如果需要删除异常规则中某个异常规则阈值,可将该值清空或设置为-1。
    • 作业执行过程中,如果修改了异常阈值,当前执行的语句会按照新的异常阈值进行处理。

删除异常规则

  1. 登录GaussDB(DWS)管理控制台。
  2. 在集群列表中单击指定集群名称,进入“基本信息”页面。
  3. 左导航栏单击“资源管理 ”页签,切换至“异常规则”页签。
  4. 单击指定异常规则所在行操作列的“删除”按钮删除异常规则。

    当异常规则已绑定到已有资源池时,不支持删除,需要先与该资源池解绑,再做删除操作。

  5. 确认无误后,单击“确定”。