DWS 资源诊断最佳实践
当DWS集群出现CPU、内存或I/O等资源异常时,定位根因往往依赖运维经验,过程繁琐且耗时。DWS集群诊断面向该场景,提供资源异常的自动根因分析能力:用户只需在AI Agent对话窗口中用自然语言描述异常现象(如"CPU使用率过高"),系统即可自动采集监控指标、分析根因(区分客户侧与系统侧),并输出标准化诊断报告,帮助用户快速定位并解决问题。
功能概述
DWS集群诊断覆盖以下三类资源异常诊断,适用场景如表1所示。
| 诊断类型 | 适用场景 |
|---|---|
| CPU高诊断 | CPU使用率过高、CPU负载异常。 |
| 内存高诊断 | 内存使用率过高、OOM(内存溢出)、动态内存超阈值。 |
| I/O过载诊断 | I/O使用率过高、磁盘I/O负载异常、磁盘利用率(util)打满、I/O等待时间(await)偏高。 |
整个诊断流程基于DWS Autopilot监控指标自动完成指标采集、根因分析与报告生成,无需连接集群执行SQL,即可获得诊断结论。
使用方式
诊断Skill可通过任意支持 MCP 协议的 AI Agent 使用,包括但不限于:
- AI Shell:华为云提供的在线 AI 交互工具,开箱即用,无需本地部署。访问地址:https://developer.huaweicloud.com/aishell.html?ticket=ST-8760627-1bUREQ0uFwaeEdfuBESoEd7H-sso&locale=zh-cn
- 自建 Agent:用户可在自己的 AI Agent 中安装诊断 Skill 并配置 DWS Autopilot MCP Server,实现相同的诊断能力
无论使用哪种 Agent,触发方式和诊断流程一致。
触发诊断
在 AI Agent 对话窗口中描述集群资源异常即可触发对应诊断,系统会自动识别意图并匹配对应 Skill:
| 诊断类型 | 触发词示例 |
|---|---|
| CPU 高 | "CPU高"、"CPU诊断"、"CPU使用率过高"、"CPU满" |
| 内存高 | "内存高"、"内存诊断"、"内存不足"、"OOM"、"内存溢出" |
| I/O 过载 | "I/O高"、"I/O诊断"、"IO过载"、"磁盘IO负载异常"、"util打满"、"await高" |
触发示例:
用户:我的DWS集群CPU使用率很高,帮忙诊断一下
集群ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
项目ID:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
用户:DWS集群内存不足,集群ID是xxx,项目ID是yyy 提供诊断参数
触发诊断后,系统会根据需要收集诊断参数:
| 参数 | 必选/可选 | 说明 |
|---|---|---|
| cluster_id | 必选 | 集群 ID(实例 ID) |
| project_id | 必选(I/O 诊断可选) | 项目 ID |
其他信息(如区域、集群名称等)系统会自动获取,无需手动提供。
诊断执行流程
诊断被触发后,将自动执行以下流程:
1. 指标采集 → 采集集群监控指标 2. 根因分析 → 分析根因,区分客户侧/系统侧 3. 报告生成 → 输出标准化诊断报告
查看诊断报告
诊断完成后,系统会生成诊断报告,可直接查看。


CPU 高诊断
自动采集集群各节点 CPU 使用率、业务并发度、活跃查询、进程 CPU 占用等指标,定位 CPU 高的根因,区分客户侧与系统侧原因。
报告内容
- 基本信息:集群名称、区域、集群 ID、TOP 节点。
- 诊断结论:根因分类与事实描述,定位到具体 SQL 时附带 SQL 摘要、QueryID、用户名、启动时间。
- CPU 贡献 Top3 语句:QueryID、用户、CPU 占比、时间、SQL 文本。
- CPU 贡献 Top3 用户:用户名与 CPU 占比。
内存高诊断
自动采集集群各节点内存使用率、实例级动态内存/进程内存、活跃会话内存占用、memory_pool 数据等指标,定位内存高的根因,区分客户侧与系统侧原因。
报告内容
- 诊断结论:异常类型与事实描述,定位到具体 SQL 时附带定位信息。
- 内存贡献 Top3 语句:QueryID、用户、内存占比、时间、SQL 文本。
- 内存贡献 Top3 数据库用户:用户名与内存占比。
I/O 过载诊断
自动采集集群各节点磁盘利用率、I/O 响应时间、吞吐量、IOPS、iowait、活跃查询、等待事件、锁冲突等指标,自动判定 I/O 场景并路由到对应排查方向。
报告内容
- 诊断结论:异常类型与事实描述。
- 问题节点 I/O 概览:节点磁盘利用率、响应时间、吞吐量等。
- I/O 贡献 Top3 SQL:QueryID、用户、I/O 占比、SQL 文本。
- I/O 贡献 Top3 用户:用户名与 I/O 占比。
- 排查信息:按场景输出的排查方向。
注意事项
- 数据真实性:所有诊断结论来自实际监控指标,指标不可达时标记为"无法获取",不编造数据。
- 报告格式:诊断报告仅输出诊断结论,不添加修复建议、不输出 SQL 优化语句。
- 时间显示:报告中所有时间均为北京时间(UTC+8)。
- 安全:对话中不会暴露 AK/SK 等凭证信息。