异常规则
功能介绍
在GaussDB(DWS)数据库中需要运行复杂多样的业务语句,部分不合理业务会耗费大量的资源进行计算,最终可能降低整个数据库的性能。对此,GaussDB(DWS)支持用户自定义配置多种异常规则,系统会自动对满足异常规则的作业执行终止/降级操作,维持系统的稳定性。用户可以通过SQL语法配置符合集群资源情况以及业务情况的异常规则组合,关联到资源池即可对相应资源池中的作业生效。如果用户未配置自定义规则,系统支持默认异常规则来保证资源极限情况下系统的稳定性。
- 该特性仅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表示取消设置,不支持设置为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 |
终止/降级 |
默认异常规则名称 |
说明 |
支持的异常操作 |
---|---|---|
default_cpu_percent |
当集群中有多个作业在运行,资源池CPU使用率达到90%时开始检测(若未配置资源池,则该值即为整个集群CPU使用率),此时如果单个作业的运行时间达到15min并且该作业CPU平均使用率达到50%以上时触发。 |
终止 |
default_spillsize |
当集群中作业运行时,单个DN的下盘大小达到整个实例空间的1/10时触发。 |
终止 |
default_memsize |
作业在单个DN上使用的内存大小达到默认集群所有DN最小可用内存的80%以上时触发。该规则仅9.1.0.100及以上集群版本支持。 |
终止 |
新建异常规则
- 登录GaussDB(DWS)管理控制台。
- 在集群列表中单击指定集群名称,进入“基本信息”页面。
- 左导航栏单击“资源管理 ”,切换至“异常规则”页签。
- 单击“添加”按钮添加异常规则。
图2 添加异常规则
- 确认无误后,单击“确定”。
- 异常规则新建完不会立即生效,需要绑定到相关资源池。请参见1.关联异常规则。
- 8.2.1集群版本支持降级异常规则,所有异常规则都支持降级行为,降级后仅网络资源抢占降至低优先级:在正常查询无网络请求时,才会调度降级查询的网络请求。
编辑异常规则
- 登录GaussDB(DWS)管理控制台。
- 在集群列表中单击指定集群名称,进入“基本信息”页面。
- 左导航栏单击“资源管理 ”页签,切换至“异常规则”页签。
- 单击指定异常规则所在行操作列的“编辑”按钮编辑异常规则。
- 编辑已有异常规则,如果需要删除异常规则中某个异常规则阈值,可将该值清空或设置为-1。
- 作业执行过程中,如果修改了异常阈值,当前执行的语句会按照新的异常阈值进行处理。
删除异常规则
- 登录GaussDB(DWS)管理控制台。
- 在集群列表中单击指定集群名称,进入“基本信息”页面。
- 左导航栏单击“资源管理 ”页签,切换至“异常规则”页签。
- 单击指定异常规则所在行操作列的“删除”按钮删除异常规则。
当异常规则已绑定到已有资源池时,不支持删除,需要先与该资源池解绑,再做删除操作。
- 确认无误后,单击“确定”。