DWS_2000000031 DWS集群活跃会话数量使用率超阈值
告警解释
DMS告警模块在指定周期内,检测到集群活跃会话数量使用率超过当前设定阈值,且抑制条件不满足时,DMS告警模块将触发该告警;检测到集群活跃会话数量使用率低于当前设定阈值时,DMS告警模块将消除该告警。
告警属性
| 告警ID | 告警归属 | 告警级别 | 告警类型 | 业务类型 | 是否可自动清除 |
|---|---|---|---|---|---|
| DWS_2000000031 | 租户面 | >90 紧急,>80 重要 | 业务告警 | 数据仓库服务 | 是 |
告警变更
| 变更类型 | 变更版本 | 变更描述 | 变更原因 |
|---|---|---|---|
| 新增 | 9.1.0.227 | 首次增加 | 首次增加 |
告警参数
| 类别 | 参数名称 | 参数含义 |
|---|---|---|
| 定位信息 | 集群名称 | 产生告警的集群名称。 |
| 租户名称 | 集群所属的租户名称。 | |
| 告警级别 | 产生告警的级别。 | |
| 附加信息 | 资源ID | 产生告警的集群ID。 |
| 资源名称 | 产生告警的集群名称。 | |
| 首次告警时间 | 告警首次发生时间,包含告警阈值与当前值。 |
告警指标
调用获取指定指标相关采集数据 - ListMetricsDataAPI接口获取该告警指标,其中接口中的指标名称为QueryMonitor。
- 请求示例:
GET https://{Endpoint}/v1/{project_id}/clusters/{cluster_id}/dms/metrics/QueryMonitor?offset=0&limit=1&from=1786782138946&to=1786784159004&order_by=ctime&sort_by=desc - 响应示例:
告警指标为响应结果中query_status为active的数据条数。
{ "code": 0, "msg": "OK", "data": [ { "query_id": "80220368369538752", "backend_start": 1786783088, "pid": "140504051222312", "block_time": 0, "application_name": "OM", "estimate_total_time": 0, "memory_skew_percent": 0, "max_peak_memory": 0, "iops_skew_percent": 0, "min_peak_memory": 0, "ctime": 1786783088000, "warning": "", "min_cpu_time": 0, "total_cpu_time": 0, "dntime_skew_percent": 0, "average_spill_size": 0, "query": "/* autopilot */ SELECT pgsac.datname as db_name, pgws.nodename as inst_name, pgsac.pid as pid, pgsac.query_id as query_id, pgws.query_band, null as job_name, null as job_inst, pgsac.usename as user_name, pgsac.application_name, pgsac.client_addr as client_address, pgsac.client_hostname, pgsac.client_port, pgsac.waiting, extract('epoch' from pgws.start_time at time zone 'UTC')::bigint as start_time, pgswlm.block_time, pgws.duration, pgws.estimate_total_time, pgws.estimate_left_time, pgswlm.enqueue, pgswlm.priority, pgsac.resource_pool, pgws.control_group, pgws.min_peak_memory, pgws.max_peak_memory, pgws.average_peak_memory, pgws.memory_skew_percent, pgws.estimate_memory, pgws.spill_info, pgws.min_spill_size, pgws.max_spill_size, pgws.average_spill_size, pgws.spill_skew_percent, pgws.min_dn_time, pgws.max_dn_time, pgws.average_dn_time, pgws.dntime_skew_percent, pgws.min_cpu_time, pgws.max_cpu_time, pgws.total_cpu_time, pgws.cpu_skew_percent, pgws.warning, pgws.average_peak_iops, pgws.iops_skew_percent, pgws.ma", "priority": 2, "start_time": 0, "max_spill_size": 0, "db_name": "postgres", "average_peak_memory": 0, "query_plan": "", "query_band": "", "job_inst": "", "wlm_attrib": "Internal", "spill_info": "", "virtual_cluster_id": 81882, "waiting": false, "average_dn_time": 0, "user_name": "Ruby", "min_spill_size": 0, "query_status": "active", "resource_pool": "root", "duration": 0, "client_port": "-1", "estimate_memory": 0, "elapsed_time": 0, "curr_xact_start": 1786783088, "client_address": "", "lane": "None", "query_elapsed_time": 0, "control_group": "", "average_peak_iops": 0, "query_start": 1786783088, "max_dn_time": 0, "cpu_skew_percent": 0, "min_peak_iops": 0, "enqueue": "None", "job_name": "", "client_hostname": "", "spill_skew_percent": 0, "system_query": true, "estimate_left_time": 0, "min_dn_time": 0, "wlm_status": "running", "max_peak_iops": 0, "inst_name": "cn_5001", "max_cpu_time": 0, "state_change": 1786783088 } ], "count": 166 }
对系统的影响
可使用会话数量不足,影响业务执行。
可能原因
max_active_statements参数设置过低。
处理步骤
- 登录DWS管理控制台。
- 左导航栏选择“集群 > 集群列表”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 导航栏切换至“参数修改”页签,在“参数列表”页面搜索并修改以下参数值,并单击“保存”。
- “常用配置”中输入“resource_track_duration”,并设置“resource_track_duration”的CN/DN参数值为“1”。 图1 修改resource_track_duration参数
- “常用配置”中输入“topsql_retention_time”, 并设置“topsql_retention_time”的CN/DN参数值为“14”,可按需调整TopSQL记录保存天数。 图2 修改topsql_retention_time参数
- “常用配置”中输入“resource_track_duration”,并设置“resource_track_duration”的CN/DN参数值为“1”。
- 找到发生死锁的SQL语句。
- 方法一
- 返回集群首页,单击集群所在行操作列的“监控面板”进入集群监控页面。
- 左导航栏选择“监控 > 历史查询”,在历史查询页面右上角选择过滤条件:“取消原因”包含关键字“deadlock detected”。
- 找到发生死锁的SQL语句,根据时间排序,可找到最近发生死锁的SQL语句。 图3 查找死锁SQL语句1
- 方法二
- 返回集群首页,左导航栏选择“监控 > 优化诊断”,进入优化诊断页面。
- 切换至“历史查询分析”界面,并在“历史查询详情”模块的搜索框选择过滤条件:“取消原因”包含关键字“deadlock detected”。
- 找到发生死锁的SQL语句,根据时间排序,可找到最近发生死锁的SQL语句。 图4 查找死锁的SQL语句2
- 死锁问题解决:8.2.1及以上集群版本后会自动检测死锁,死锁检测会延迟1s进行,检测到死锁会自动释放锁。
告警清除
此告警修复后,自动清除。
参考信息
不涉及。