# 诊断ECS实例故障
ECS诊断基于华为云积累的大量知识经验和特有的检测算法，通过采集少量GuestOS数据，对CPU使用率、网络延时、IO性能测试等维度分析，帮您快速了解服务器整体运行状况并准确提供异常问题排查定位的方法。
#### 注意事项
对ECS诊断目标实例的要求如下：UniAgent需处于运行中状态，且该功能仅特定版本的UniAgent支持 ，如Linux系统需UniAgent1.1.5及以上版本，Windows系统需UniAgent1.1.8及以上版本。
UniAgent相关操作请参考[配置UniAgent](https://support.huaweicloud.com/usermanual-coc/coc_um_03_01_02.html)。
ECS诊断插件仅支持部分操作系统，详情请见下表：
表1ECS诊断插件支持的操作系统 
|                                                                                                                         **机器架构**                                                                                                                          |    **操作系统（OS）类型**    |                      具体版本                       | **ECS诊断插件（holmes-agent）是否支持** **（Y：支持；N：不支持）** |
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------:|:-------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------:|
| X86                                    | Huawei Cloud EulerOS  |    Huawei Cloud EulerOS 2.0 标准版 64位(40GB)    |                                       Y                                       |
| X86                                    |        CentOS        |                  CentOS7.9                   |                                        Y                                         |
| X86                                    |        CentOS        |                   CentOS 8.0                   |                                         Y                                         |
| X86                                    |        CentOS        |                CentOS 8.2 64bit                |                                        Y                                         |
| X86                                    |        CentOS        |                   CentOS7.8                    |                                       Y                                        |
| X86                                    |        CentOS        |                    CentOS7.7                    |                                        Y                                        |
| X86                                    |        CentOS        |                   CentOS7.6                   |                                        Y                                        |
| X86                                    |        CentOS        |                   CentOS7.5                   |                                        Y                                        |
| X86                                    |        CentOS        |                   CentOS7.4                    |                                        Y                                         |
| X86                                    |        CentOS        |                  CentOS7.3                   |                                       Y                                       |
| X86                                    |        CentOS        |                   CentOS7.2                   |                                        Y                                         |
| X86                                    |        CentOS        |                  CentOS6.10                  |                                        N                                         |
| X86                                    |        Ubuntu        |           Ubuntu 20.04 server 64bit           |                                       Y                                       |
| X86                                    |        Ubuntu        |          Ubuntu 22.04 server 64bit          |                                        Y                                        |
| X86                                    |        Ubuntu        |           Ubuntu 18.04 server 64bit            |                                        Y                                        |
| X86                                    |        Ubuntu        |          Ubuntu 16.04 server 64bit           |                                        Y                                        |
| X86                                    |       EulerOS       |               EulerOS 2.5 64bit               |                                        Y                                        |
| X86                                    |       Debian        |              Debian 9.0.0 64bit               |                                        Y                                        |
| X86                                    |       Debian        |              Debian 8.8.0 64bit              |                                        Y                                        |
| X86                                    |       Debian        |               Debian 8.2.0 64bit               |                                         Y                                         |
| X86                                    |       Debian        |             Debian 12.0.0 64bit              |                                        N                                        |
| X86                                    |       Debian        |              Debian 11.1.0 64bit              |                                       Y                                        |
| X86                                    |       Debian        |             Debian 10.0.0 64bit              |                                       Y                                       |
| X86                                    |      OpenSUSE       |              OpenSUSE 15.0 64bit               |                                       Y                                       |
| X86                                    |      AlmaLinux      |             AlmaLinux 9.0 64bit             |                                       N                                        |
| X86                                    |      AlmaLinux      |              AlmaLinux 8.4 64bit              |                                       N                                        |
| X86                                    |      AlmaLinux      |              AlmaLinux 8.3 64bit               |                                        N                                        |
| X86                                    |      Rocky Linux      |             Rocky Linux 9.0 64bit             |                                       N                                        |
| X86                                    |      Rocky Linux      |            Rocky Linux 8.5 64bit             |                                        N                                        |
| X86                                    |      Rocky Linux      |            Rocky Linux 8.4 64bit             |                                       N                                       |
| X86                                    |     CentOS Stream     |             CentOS Stream 9 64bit             |                                       Y                                        |
| X86                                    |     CentOS Stream     |             CentOS Stream 8 64bit              |                                       Y                                        |
| X86                                    |       CoreOS        |             CoreOS 2079.4.0 64bit             |                                        N                                        |
| X86                                    |      openEuler       |             openEuler 22.03 64bit             |                                       Y                                        |
| X86                                    |      openEuler       |             openEuler 20.03 64bit              |                                        Y                                         |
| X86                                    |        Others         |          FreeBSD 11.0-RELEASE 64bit           |                                        N                                        |
|                                                                                                      ARM                                                                                                             | Huawei Cloud EulerOS |    Huawei Cloud EulerOS 2.0 标准版 64位(40GB)     |                                       Y                                        |
|                                                                                                      ARM                                                                                                             |       Ubuntu        |          Ubuntu 18.04 server 64bit          |                                       Y                                        |
|                                                                                                      ARM                                                                                                             |       CentOS        |           CentOS 7.6 64bit with ARM           |                                       N                                        |
|                                                                                                      ARM                                                                                                             |       EulerOS        |          EulerOS 2.8 64bit with ARM           |                                       N                                        |
|                                                                                                      ARM                                                                                                             |        Debian         |         Debian 10.2.0 64bit with ARM          |                                        N                                        |
|                                                                                                      ARM                                                                                                             |        KylinOS        | Kylin Linux Advanced Server for Kunpeng V10 |                                        N                                        |
|                                                                                                      ARM                                                                                                             |      openEuler       |        openEuler 20.03 64bit with ARM         |                                        N                                        |
|                                                                                                                         Windows                                                                                                                          |    Windows2012     |      Windows Server 2012 R2 数据中心版 64位英文      |                                       N                                       |
|                                                                                                                         Windows                                                                                                                          |    Windows2012     |       Windows Server 2012 R2 标准版 64位英文        |                                        N                                         |
|                                                                                                                         Windows                                                                                                                          |    Windows2012     |     Windows Server 2012 R2 数据中心版 64位简体中文     |                                        N                                        |
|                                                                                                                         Windows                                                                                                                          |    Windows2012     |      Windows Server 2012 R2 标准版 64位简体中文      |                                        N                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2016      |     Windows Server 2016 数据中心版 64位英文_40GB      |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2016      |     Windows Server 2016 标准版 64位英文_40GB      |                                        Y                                         |
|                                                                                                                         Windows                                                                                                                          |     Windows2016      |     Windows Server 2016 数据中心版 64位简体中文_40GB     |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2016      |      Windows Server 2016 标准版 64位简体中文_40GB      |                                       Y                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2019     |     Windows Server 2019 数据中心版 64位英文_40GB     |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2019     |       Windows Server 2019 标准版 64位英文_40GB       |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |     Windows2019     |    Windows Server 2019 数据中心版 64位简体中文_40GB     |                                        Y                                         |
|                                                                                                                         Windows                                                                                                                          |     Windows2019     |     Windows Server 2019 标准版 64位简体中文_40GB      |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |      Windows2022      |     Windows Server 2022 数据中心版 64位中文_40GB     |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |      Windows2022      |       Windows Server 2022 标准版 64位中文_40GB       |                                        Y                                        |
|                                                                                                                         Windows                                                                                                                          |      Windows2022      |     Windows Server 2022 数据中心版 64位英文_40GB      |                                       Y                                        |
|                                                                                                                         Windows                                                                                                                          |      Windows2022      |      Windows Server 2022 标准版 64位英文_40GB      |                                       Y                                        |
   
#### ECS诊断
1. 登录[云运维中心](https://console.huaweicloud.com/coc/?#/console/home)。
2. 在左侧导航栏选择"故障管理 \> 故障诊断"。
3. 单击ECS诊断卡片的"立即诊断"，进入创建ECS诊断页面。
4. 单击"添加实例"，根据您的需求选择实例。 
   表2选择实例参数说明 
   | **参数**   | **说明**                                                                                                                                                                                                                                                           | **示例**      |
   |:---|:---|:---|
   | 选择方式    | 请选择实例选择方式。 - 手动选择：根据"企业项目"、"视图类型"、"资源类型"、"区域"和"目标实例"确认筛选条件，手动选择实例。  - 自动全选：暂不支持。   | 手动选择     |
   | 企业项目 | 在下拉列表中选择企业项目，支持选择"全部"。                                                                                                                                                                                                                                            | 全部        |
   | 视图类型   | 请选择视图类型。 - CMDB资源视角：以资源视角选择实例列表。  - CMDB应用视角：以应用视角选择实例列表。                   | CMDB资源视角 |
   | 资源类型     | 默认参数，不支持修改。                                                                                                                                                                                                                                                     | ECS      |
   | 区域    | 在下拉列表中选择区域。                                                                                                                                                                                                                                                    | 华北-北京一     |
   | 目标实例   | 在筛选框设置条件，选择筛选出的实例。                                                                                                                                                                                                                                               | **-**    |
      
   
   
5. 勾选"同意安装插件并采集数据《GuestOS诊断服务前端数据授权》"，将弹出授权内容。
6. 阅读授权条款及条件后，单击"同意"。 
   单击"同意"按钮表示您已明确了解并同意上述条款及条件。
   
   
7. 单击"确定"，开始进行ECS诊断。 
   等待诊断完成，可查看诊断报告。如果执行过程产生异常，请参考[故障诊断异常如何处理？](https://support.huaweicloud.com/coc_faq/coc_faq_05_004.html)
   
   
8. 在诊断结果的"诊断报告"页签查看诊断详情。 
   支持勾选"仅查看异常项"对诊断结果进行过滤。
   图1查看诊断报告   
   ![](https://support.huaweicloud.com/usermanual-coc/zh-cn_image_0000002780946137.png "点击放大")
   
   
9. 若诊断报告提示有异常项，查看异常详情，并根据"建议"进行处理。
 
 #### 诊断结果说明
ECS诊断项如[表3]所示，系统会根据实际情况展示，即诊断项采集不到数据时将默认不展示。
 表3诊断结论说明 
| 诊断项名称                            | 诊断结论                                                                                                                                              |
|:---|:---|
| 总CPU占用率过高                      | 实例整体CPU占用率已超过80%。                                                                                                                                |
| CPU使用率过高的进程                      | 单进程CPU占用率超过整机的50%。                                                                                                                               |
| 单个CPU占用率过高                       | 单核CPU占用率超过85%。                                                                                                                                  |
| 磁盘使用率检查                          | 该实例当前部分云盘对应文件系统的使用率或inode使用率已经超过了80%，可能导致在这些分区上无法创建新的文件。                                                                                          |
| fstab中的设备检查                      | 当前实例的/etc/fstab文件中配置的某个设备不存在，可能会导致实例无法启动。                                                                                                      |
| fstab中的设备挂载状态检查                  | 该实例存在未在/etc/fstab中配置自动挂载的云盘，可能会导致实例无法启动。                                                                                                          |
| fstab文件格式检查                       | fstab文件存在配置格式错误，可能会导致实例无法启动。                                                                                                                     |
| 系统防火墙状态检查                         | 当前实例的防火墙（即iptables设置）目前处于开启状态，如果服务器开启了防火墙，并设置了屏蔽外界访问的规则，可能会导致远程访问实例失败。                                                                         |
| 检查操作系统是否OOM                      | 当前实例Guest OS内部曾经发生了OOM（out-of-memory）问题。                                                                                                        |
| SSH公钥或私钥访问权限检查                   | 当前实例SSH依赖的公钥或私钥文件权限不正确，会导致实例无法通过SSH访问。                                                                                                            |
| SSH关键文件检查                         | 当前实例SSH服务对应的关键文件或目录缺失，会导致实例无法通过SSH访问。                                                                                                           |
| 内存使用率过高                         | 实例当前内存使用率已经超过80%。                                                                                                                                 |
| SSH是否允许root用户登录                 | 当前实例SSH服务禁止root账号登录，会导致实例无法通过root用户SSH访问。                                                                                                          |
| 常见业务端口监听状态检查                    | 端口22不存在进程监听，请您登录实例，检查端口业务服务是否存在异常，并根据需要进行修复。                                                                                                    |
| limits设置检查                         | 当前实例系统文件/etc/security/limits.conf中部分配置大于系统默认值，可能导致实例无法远程登录。                                                                                      |
| 内存大页配置检查                        | 当前实例内核参数vm.nr_hugepages配置的大页内存数量过大，可能导致实例无法远程登录。                                                                                                |
| NAT网关环境内核参数检查                    | 当前实例NAT网关访问相关的内核参数配置存在异常，导致用户无法通过ssh连接实例，还会导致当前实例上的HTTP服务访问出现异常。请您检查并调整/etc/sysctl.conf中的net.ipv4.tcp_tw_recycle和net.ipv4.tcp_timestamps参数的取值。 |
| tcp_sack配置检查                     | 当前实例未开启tcp_sack，可能会影响Linux实例的网络性能。                                                                                                             |
| selinux状态检查                       | 该实例开启了SELinux服务，会导致SSH远程连接实例时报错，请您视情况选择临时或永久关闭SELinux服务。                                                                                          |
| 系统关键用户设置检查                     | 当前实例的系统账号不存在，可能会导致实例无法登录。                                                                                                                       |
| 网卡多队列开启状态检查                     | 网卡多队列特性状态未开启，可能对网络性能造成影响。请根据需要将该配置调整为开启状态。                                                                                                       |
| 关键系统文件存在性检查                     | 该实例系统目录中的部分关键系统文件缺失，可能导致实例无法登录。                                                                                                                 |
| 系统关键进程启动状态检查                     | 该实例系统关键进程(比如SSH进程)处于未运行状态，可能会导致实例无法访问。                                                                                                           |
| 系统关键文件格式检查                       | 当前实例系统账号对应文件的文件格式错误（不是unix格式），可能会导致实例无法登录。                                                                                                       |
| 网卡丢包检查                          | 当前实例网卡存在丢包问题，将会导致部分业务请求时延偏高或者失败。                                                                                                                 |
| IPI重调度中断数偏高                        | 当前实例IPI重调度中断数偏高，可能引起额外开销，存在业务性能下降的风险，建议结合业务排查确认。                                                                                               |
| TLB中断数偏高                          | 当前实例TLB中断数偏高，可能引起额外开销，存在业务性能下降的风险，建议结合业务排查确认。                                                                                                    |
| 系统内核空间占用CPU开销较高                   | 当前实例sys内核空间占用CPU资源较高，一般是由于应用程序的某些系统调用过多，可能影响应用程序本身的CPU资源使用。                                                                                     |
| CPU核间中断占用率不均衡                     | 当前实例CPU核间中断占用率不均衡，集中到某一个或某几个核上，导致单核si冲高，可能存在CPU单核瓶颈影响业务的风险，请排查。                                                                                  |
| 存储时延偏高                            | 当前实例磁盘存储时延偏高，可能会导致业务卡顿、响应时延偏高等性能问题，请结合业务存储IO诉求排查磁盘规格配置。                                                                                          |
| CLOSE_WAIT状态的连接数偏高               | 当前实例CLOSE_WAIT状态的连接数偏高，存在新请求失败的风险，请排查。                                                                                                            |
| 链接跟踪表溢出                          | 当前实例链接跟踪表溢出，可能会导致新建连接被丢弃从而造成业务请求失败。                                                                                                             |
| 新建连接数偏高                          | 当前实例存在大量的新建连接数，可能会导致新请求时延增大或者失败。                                                                                                                  |
| 疑似ddos攻击                        | 当前实例可能存在ddos攻击风险，请检查确认。                                                                                                                          |
| 存储IO达到磁盘QoS上限                   | 当前实例磁盘存储IOPS或带宽超过磁盘QoS上限，可能会导致业务卡顿或者失败。                                                                                                        |
| socket监听队列溢出                     | 当前实例存在socket监听队列溢出丢包问题，可能会导致新建连接无法建立。                                                                                                           |
| UDP缓冲区溢出丢包                      | 当前实例存在UDP突发流量导致缓冲区溢出丢包问题。                                                                                                                       |
| TIME_WAIT状态的连接数偏高                 | 当前实例TIME_WAIT状态的连接数偏高，可能会导致新请求失败，业务不可用。                                                                                                           |
| FIN_WAIT2状态的连接数偏高                | 当前实例FIN_WAIT2状态的连接数偏高，会占用大量的本地端口。                                                                                                               |
| ESTABLISHED状态的连接数偏高              | 当前实例ESTABLISHED状态的连接数偏高，会占用大量的本地端口和内存，请结合业务排查是否正常。                                                                                                |
| 文件句柄数偏小                         | 当前实例配置的文件句柄数偏小，当业务使用的文件句柄数达到配置上限的时候，会导致系统不可用。                                                                                                    |
| 本地端口范围偏小                        | 当前实例配置的本地端口范围偏小，当实例高并发请求其他业务，可能会报错"Cannot assign requested address"，从而导致新建连接失败。                                                                  |
| Qdisc发送队列溢出导致丢包                  | Qdisc队列丢包数据。                                                                                                                                   |
| 业务swap检查                         | 当前实例业务出现swap，会导致业务性能下降，对于性能要求较高的业务会有较大影响。                                                                                                        |
| 透明大页配置检查                         | 当前实例开启了透明大页，建议根据业务性能表现来决定是否需要开启透明大页。                                                                                                             |
| 内存buffer/cache占用率高              | 当前实例内存buffer/cache占用率偏高，可能导致内存free不足，应用层malloc时频繁触发回收cache造成业务性能下降。                                                                              |
| 业务进程内存占用率偏高                       | 当前实例业务进程占用内存偏高，可能由于可用内存不足，导致业务性能下降，请排查。                                                                                                         |
| 网络流量超限检测                        | 当前实例网络流量超过当前规格网络QoS上限，可能会导致业务性能受限。                                                                                                                 |
| TCP缓冲区溢出检测                       | 当前实例Socket使用的page数接近TCP缓冲区配置上限，存在TCP缓冲区溢出丢包风险。                                                                                                    |
| UDP缓冲区溢出检测                        | 当前实例Socket使用的page数接近UDP缓冲区配置上限，存在UDP缓冲区溢出丢包风险。                                                                                                    |
| GPU状态                           | 执行nvidia-smi返回的GPU状态不正常。                                                                                                                         |
| GPU掉卡                            | GPU掉卡。                                                                                                                                         |
| GPU核心温度过高                        | GPU核心温度过高。                                                                                                                                       |
| GPU显存温度过高                          | GPU显存温度过高。                                                                                                                                        |
| GPU风扇异常                         | GPU风扇异常，存在ERR!。                                                                                                                                 |
| GPU功耗异常                          | GPU功耗异常，存在ERR!。                                                                                                                                  |
| GPU显存使用过高                         | GPU显存使用过高，可能会出现程序崩溃。                                                                                                                              |
| GPU算力使用过高                        | GPU算力使用过高，可能存在算力不够的情况。                                                                                                                           |
| GPU带宽异常                        | GPU带宽异常，可能硬件出错。                                                                                                                                 |
| GPU性能等级低                         | GPU性能等级低，不能最大限度使用GPU。                                                                                                                            |
| ECC模式未开启                       | ECC模式未开启，无法检查ECC错误。                                                                                                                               |
| GPU的易失性ECC错误太多                    | GPU的易失性ECC错误超过阈值4。                                                                                                                               |
| GPU的聚合性ECC错误太多                  | GPU的聚合性ECC错误超过阈值4。                                                                                                                               |
| DRAM内存ECC隔离页错误                  | DRAM内存ECC隔离页超标阈值60。                                                                                                                               |
| DRAM ECC页隔离待生效                  | DRAM ECC页隔离待生效。                                                                                                                                  |
| GPU存在XID错误                        | GPU存在XID错误。                                                                                                                                      |
| GPU内核版本不一致错误                     | GPU驱动安装内核和当前内核版本不一致。                                                                                                                             |
| nouveau驱动未禁用错误                     | nouveau驱动未禁用错误。                                                                                                                                  |
| cuda未安装提示                          | cuda未安装提示。                                                                                                                                      |
| fabricmanager未安装错误                | fabricmanager未安装错误。                                                                                                                             |
| SRAM ECC报错太多                    | SRAM ECC报错。                                                                                                                                        |
| DRAM ECC过多导致行重映射失败                | DRAM ECC错误重映射失败。                                                                                                                                |
| DRAM ECC行重映射待生效有错误              | DRAM ECC行重映射待生效有错误。                                                                                                                              |
| DRAM 可纠正ECC报错太多                  | DRAM 可纠正ECC报错太多，大于1000。                                                                                                                          |
| DRAM 不可纠正ECC报错太多                  | DRAM 不可纠正ECC报错太多，大于60。                                                                                                                           |
| initramfs文件检查                      | 该实例缺少系统启动必须的initramfs文件，会导致该实例启动出现异常，无法正常进入系统。                                                                                                 |
| initramfs文件关键驱动检查                 | 该实例缺少QingTian实例启动必须的驱动文件virtio_scsi，会导致该实例在部分规格上启动出现异常。                                                                                            |
| grub配置文件检查                     | 该实例缺少系统启动必须的grub配置文件，会导致该实例启动出现异常。                                                                                                               |
| vmlinuz文件检查                      | 该实例缺少系统启动必须的vmlinuz文件，会导致该实例启动出现异常。                                                                                                            |
| 实例的时间同步服务检查                      | 实例当前既运行chronyd时间同步服务又运行了ntpd时间同步服务，两个服务在部分场景会存在冲突，无法保证实例节点时钟的稳定。                                                                                 |
| 实例的时间同步服务运行状态检查                  | 实例的时间同步服务运行状态异常，未处于running状态。                                                                                                                      |
| 实例的时间同步服务开机自起动配置检查               | 实例的时间同步服务开机自起动状态异常，未处于enabled状态。                                                                                                                 |
| fstab文件中重复文件系统检查                 | 实例fstab文件中存在重复的文件系统挂载配置。                                                                                                                        |
| fstab文件UUID检查                    | 实例fstab文件中未使用UUID声明文件系统。                                                                                                                         |
| fstab文件重复挂载点检查                  | 实例fstab文件中存在重复的挂载点。                                                                                                                             |
| fstab文件挂载对应关系与实际挂载一致性检查          | fstab文件中的文件系统与目录的挂载对应关系与实际挂载不一致。                                                                                                                  |
| fstab文件fstype与实际文件系统fstype一致性检查 | fstab文件中的fstype与实际文件系统的fstype不一致。                                                                                                               |
| 实例存在多个文件系统UUID一致                | 实例存在多个文件系统UUID一致。                                                                                                                                |
| 实例存在状态异常的ext4文件系统                 | 实例存在异常的ext4文件系统。                                                                                                                                 |
| 实例网卡静态ip配置未生效                   | 实例网卡静态ip配置未生效。                                                                                                                                    |
| 实例网卡dhcp客户端常驻进程异常                | 实例网卡dhcp客户端常驻进程异常。                                                                                                                              |
| 实例网络服务异常                         | 实例网络服务处于异常状态。                                                                                                                                   |
| 实例串口日志输出检查                       | 实例串口日志输出检查。                                                                                                                                       |
| 实例日志打印内存页分配失败                     | 实例出现内存页分配失败的问题。                                                                                                                                   |
| 实例日志打印创建新的进程失败                   | 实例出现无法创建线程的问题。                                                                                                                                     |
| 实例日志打印无法打开新的文件                 | 实例出现无法打开新的文件句柄的问题。                                                                                                                                |
   
#### 相关文档
COC支持通过调用API接口实现提交、重试、取消、查询诊断任务，详细请参考[故障诊断](https://support.huaweicloud.com/api-coc/coc_api_04_03_005.html)。
