用途:当 DWS 集群触发内存使用率过高告警时,自动采集指标数据、分析根因(客户侧或系统侧),输出标准化诊断报告。适用内存过高告警、内存不足与 OOM 排查,以及用户主动发起的内存诊断。
架构与工具:KooCLI(hcloud)→ DWS Autopilot API → 集群监控指标;MCP Server(dws_autopilot)为同一 API 的降级通道。优先使用 KooCLI;hcloud 不可用(未安装或版本低于 3.2.0)时改用 MCP Server。若 hcloud 首次调用返回 NETWORK_ERROR,自动切换到 MCP;两者均不可用则终止并提示检查配置。
前置条件:KooCLI 版本不低于 3.2.0(hcloud version 校验);有效华为云凭证(AK/SK 或 IAM Token,不得在对话或命令中暴露);IAM 权限 dws:clusters:get、dws:clusters:list、dws:metricData:get、dws:hostOverview:get。
主要能力与流程:按 Step 0-7 执行。Step 0 环境检测与网络探测;Step 1 查询 MemStat 指标并计算内存使用率,判断是否过高、全局过高或失衡;Step 2 获取主机名与 IP 映射;Step 3 查询 InstanceMemory,区分 CN/DN 实例与动态/进程内存;Step 4 查询 memory_diagnose_detail,统计活跃会话、用户与 SQL 内存;Step 5 结合用户身份(omm/Ruby 为系统侧)分析根因;Step 6-7 输出报告。可用 metric_name:MemStat、InstanceMemory、memory_diagnose_detail。
使用方式:查询指标命令为 hcloud DWS ListMetricsData --cli-region=<region> --cluster_id=<id> --metric_name=<name> --project_id=<pid> --offset=0 --limit=200 --from=<from_ts> --to=<to_ts>;查询主机为 hcloud DWS ListHostOverview --cli-region=<region> --project_id=<pid> --offset=0 --limit=200。时间使用 Unix 毫秒时间戳(UTC),建议窗口为告警时间前 20 分钟至告警时间。所有调用统一 limit=200 分页,数据量等于 200 时 offset 递增。
限制:诊断结论必须来自工具实际返回结果,禁止编造或假设数值;输出仅含诊断报告,禁止附修复建议、输出 SQL 优化语句或使用 emoji。诊断前须阅读背景知识。若返回 50201/RDS.9999 错误则跳过指标采集直接生成报告。资料中系统侧根因部分内容不完整,暂未提供完整说明。