深度诊断ECS
操作场景
ECS支持操作系统的深度诊断服务,提供GuestOS内常见问题的自诊断能力,您可以通过方便快捷的自诊断服务解决操作系统内的常见问题。
本文介绍支持深度诊断的操作系统版本以及诊断结论说明。
约束与限制
- 该功能依赖云运维中心(Cloud Operations Center,简称COC),需开通并授权COC服务。
对于IAM用户,需额外配置COC资源操作类权限,详细内容,请参见配置ECS自助运维自定义策略。
- 该功能依赖UniAgent。UniAgent是统一数据采集Agent,支持脚本下发和执行。
若ECS未安装UniAgent,则无法免登录发送命令,详细内容,请参见为ECS安装UniAgent。
- 仅Linux操作系统的ECS支持深度诊断。
- 支持深度诊断的操作系统类型及版本。
操作系统类型
版本
CPU架构
Huawei Cloud EulerOS
Huawei Cloud EulerOS 2.0
Huawei Cloud EulerOS 1.1
x86/鲲鹏
CentOS
CentOS 8.2 64bit
CentOS 8.0 64bit
CentOS 7.9 64bit
CentOS 7.8 64bit
CentOS 7.7 64bit
CentOS 7.6 64bit
CentOS 7.5 64bit
CentOS 7.4 64bit
CentOS 7.3 64bit
CentOS 7.2 64bit
x86
Ubuntu
Ubuntu 22.04 server 64bit
Ubuntu 20.04 server 64bit
x86
Debian
Debian 11.1.0 64bit
Debian 10.0.0 64bit
x86
操作步骤
- 登录控制台,进入弹性云服务器列表页面。
- 在待深度诊断的ECS的“操作”列,单击“更多 > 运维与监控 > 深度诊断”。
- (可选)在“开通云运维中心并添加权限”页面,阅读服务声明并勾选后,单击“开通并授权”。
- 在“深度诊断”页面,选择“深度诊断场景”为“全面诊断”。
深度诊断功能依赖UniAgent,如果提示未安装UniAgent或者安装失败,请参考为ECS安装UniAgent进行安装,否则无法发送命令。
图1 深度诊断 - 勾选“同意安装插件并采集数据”后,单击“确定”。
诊断结果及说明,请参见深度诊断结论。
- 在诊断结果的“诊断报告”页签查看诊断详情。
图2 诊断报告
- 在“诊断详情”区域,单击异常项左侧的“
”查看异常详情,并根据“优化建议”进行处理。
图3 诊断异常项(示例)
深度诊断结论
诊断项ID |
诊断项名称 |
诊断结论 |
---|---|---|
guestos.cpu.high_total_usage |
总CPU占用率过高 |
实例整体CPU占用率已超过80% |
guestos.cpu.high_process_usage |
CPU使用率过高的进程 |
单进程CPU占用率超过整机的50% |
guestos.cpu.high_core_usage |
单个CPU占用率过高 |
单核CPU占用率超过85% |
guestos.storage.high_inode_usage |
磁盘使用率检查 |
该实例当前部分云盘对应文件系统的使用率或inode使用率已经超过了80%,可能导致在这些分区上无法创建新的文件 |
guestos.filesystem.invalid_device |
fstab中的设备检查 |
当前实例的/etc/fstab文件中配置的某个设备不存在,可能会导致实例无法启动 |
guestos.filesystem.device_mount_failure |
fstab中的设备挂载状态检查 |
该实例存在未在/etc/fstab中配置自动挂载的云盘,可能会导致实例无法启动 |
guestos.filesystem.invalid_format |
fstab文件格式检查 |
fstab文件存在配置格式错误,可能会导致实例无法启动 |
guestos.network.firewall_status_check |
系统防火墙状态检查 |
当前实例的防火墙(即iptables设置)目前处于开启状态,如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,可能会导致远程访问实例失败 |
guestos.memory.oom_events |
检查操作系统是否OOM |
当前实例Guest OS内部曾经发生了OOM(out-of-memory)问题 |
guestos.ssh.incorrect_file_permission |
SSH公钥或私钥访问权限检查 |
当前实例SSH依赖的公钥或私钥文件权限不正确,会导致实例无法通过SSH访问 |
guestos.ssh.missing_critical_file |
SSH关键文件检查 |
当前实例SSH服务对应的关键文件或目录缺失,会导致实例无法通过SSH访问 |
guestos.memory.high_total_usage |
内存使用率过高 |
实例当前内存使用率已经超过80% |
guestos.ssh.forbidden_root_login |
SSH是否允许root用户登录 |
当前实例SSH服务禁止root账号登录,会导致实例无法通过root用户SSH访问 |
guestos.system.port_listenning |
常见业务端口监听状态检查 |
端口22不存在进程监听,请您登录实例,检查端口业务服务是否存在异常,并根据需要进行修复 |
guestos.system.unreasonable_file_limits |
limits设置检查 |
当前实例系统文件/etc/security/limits.conf中部分配置大于系统默认值,可能导致实例无法远程登录 |
guestos.memory.unreasonable_hugepage_config |
内存大页配置检查 |
当前实例内核参数vm.nr_hugepages配置的大页内存数量过大,可能导致实例无法远程登录 |
guestos.network.wrong_nat_config |
NAT网关环境内核参数检查 |
当前实例NAT网关访问相关的内核参数配置存在异常,导致用户无法通过ssh连接实例,还会导致当前实例上的HTTP服务访问出现异常。请您检查并调整/etc/sysctl.conf中的net.ipv4.tcp_tw_recycle和net.ipv4.tcp_timestamps参数的取值 |
guestos.network.wrong_tcp_sack |
tcp_sack配置检查 |
当前实例未开启tcp_sack,可能会影响Linux实例的网络性能 |
guestos.system.wrong_selinux_status |
selinux状态检查 |
该实例开启了SELinux服务,会导致SSH远程连接实例时报错,请您视情况选择临时或永久关闭SELinux服务 |
guestos.system.missing_critical_user |
系统关键用户设置检查 |
当前实例的系统账号不存在,可能会导致实例无法登录 |
guestos.network.disabled_multi_queue |
网卡多队列开启状态检查 |
网卡多队列特性状态未开启,可能对网络性能造成影响。请根据需要将该配置调整为开启状态 |
guestos.system.critical_file_exists |
关键系统文件存在性检查 |
该实例系统目录中的部分关键系统文件缺失,可能导致实例无法登录 |
guestos.system.critical_service_exists |
系统关键进程启动状态检查 |
该实例系统关键进程(比如SSH进程)处于未运行状态,可能会导致实例无法访问 |
guestos.system.critical_file_format_invalid |
系统关键文件格式检查 |
当前实例系统账号对应文件的文件格式错误(不是unix格式),可能会导致实例无法登录 |
guestos.network.nic_dropped |
网卡丢包检查 |
当前实例网卡存在丢包问题,将会导致部分业务请求时延偏高或者失败 |
guestos.cpu.res_interrupts |
IPI重调度中断数偏高 |
当前实例IPI重调度中断数偏高,可能引起额外开销,存在业务性能下降的风险,建议结合业务排查确认 |
guestos.cpu.tlb_interrupts |
TLB中断数偏高 |
当前实例TLB中断数偏高,可能引起额外开销,存在业务性能下降的风险,建议结合业务排查确认 |
guestos.cpu.syscall_high_usage |
系统内核空间占用CPU开销较高 |
当前实例sys内核空间占用CPU资源较高,一般是由于应用程序的某些系统调用过多,可能影响应用程序本身的CPU资源使用 |
guestos.cpu.irq_not_balanced |
CPU核间中断占用率不均衡 |
当前实例CPU核间中断占用率不均衡,集中到某一个或某几个核上,导致单核si冲高,可能存在CPU单核瓶颈影响业务的风险,请排查 |
guestos.storage.high_latency |
存储时延偏高 |
当前实例磁盘存储时延偏高,可能会导致业务卡顿、响应时延偏高等性能问题,请结合业务存储IO诉求排查磁盘规格配置 |
guestos.network.too_much_close_wait_connections |
CLOSE_WAIT状态的连接数偏高 |
当前实例CLOSE_WAIT状态的连接数偏高,存在新请求失败的风险,请排查 |
guestos.network.nf_conntrack_table_full |
链接跟踪表溢出 |
当前实例链接跟踪表溢出,可能会导致新建连接被丢弃从而造成业务请求失败 |
guestos.network.too_much_new_connections |
新建连接数偏高 |
当前实例存在大量的新建连接数,可能会导致新请求时延增大或者失败 |
guestos.network.possible_ddos_attack |
疑似ddos攻击 |
当前实例可能存在ddos攻击风险,请检查确认 |
guestos.storage.io_bottleneck |
存储IO达到磁盘QoS上限 |
当前实例磁盘存储IOPS或带宽超过磁盘QoS上限,可能会导致业务卡顿或者失败 |
guestos.network.socket_listenning_queue_overflow |
socket监听队列溢出 |
当前实例存在socket监听队列溢出丢包问题,可能会导致新建连接无法建立 |
guestos.network.udp_buffer_overflow |
UDP缓冲区溢出丢包 |
当前实例存在UDP突发流量导致缓冲区溢出丢包问题 |
guestos.network.too_much_time_wait_connections |
TIME_WAIT状态的连接数偏高 |
当前实例TIME_WAIT状态的连接数偏高,可能会导致新请求失败,业务不可用 |
guestos.network.too_much_fin_wait2_connections |
FIN_WAIT2状态的连接数偏高 |
当前实例FIN_WAIT2状态的连接数偏高,会占用大量的本地端口 |
guestos.network.too_much_established_connections |
ESTABLISHED状态的连接数偏高 |
当前实例ESTABLISHED状态的连接数偏高,会占用大量的本地端口和内存,请结合业务排查是否正常 |
guestos.system.file_descriptor_not_enough |
文件句柄数偏小 |
当前实例配置的文件句柄数偏小,当业务使用的文件句柄数达到配置上限的时候,会导致系统不可用 |
guestos.network.local_port_range_too_small |
本地端口范围偏小 |
当前实例配置的本地端口范围偏小,当实例高并发请求其他业务,可能会报错“Cannot assign requested address”,从而导致新建连接失败 |
guestos.network.qdisc_queue_overflow |
Qdisc发送队列溢出导致丢包 |
Qdisc队列丢包数据 |
guestos.memory.swap_check |
业务swap检查 |
当前实例业务出现swap,会导致业务性能下降,对于性能要求较高的业务会有较大影响 |
guestos.memory.transparent_hugepage_check |
透明大页配置检查 |
当前实例开启了透明大页,建议根据业务性能表现来决定是否需要开启透明大页 |
guestos.memory.buffer_cache_too_high |
内存buffer/cache占用率高 |
当前实例内存buffer/cache占用率偏高,可能导致内存free不足,应用层malloc时频繁触发回收cache造成业务性能下降 |
guestos.memory.process_used_too_high |
业务进程内存占用率偏高 |
当前实例业务进程占用内存偏高,可能由于可用内存不足,导致业务性能下降,请排查 |
guestos.network.traffic_exceed |
网络流量超限检测 |
当前实例网络流量超过当前规格网络QoS上限,可能会导致业务性能受限 |
guestos.network.socket_tcp_buffer_overflow |
TCP缓冲区溢出检测 |
当前实例Socket使用的page数接近TCP缓冲区配置上限,存在TCP缓冲区溢出丢包风险 |
guestos.network.socket_udp_buffer_overflow |
UDP缓冲区溢出检测 |
当前实例Socket使用的page数接近UDP缓冲区配置上限,存在UDP缓冲区溢出丢包风险 |
guestos.gpu.gpu_status |
GPU状态 |
执行nvidia-smi返回的GPU状态不正常 |
guestos.gpu.gpu_card_lost |
GPU掉卡 |
GPU掉卡 |
guestos.gpu.core_temp_too_high |
GPU核心温度过高 |
GPU核心温度过高 |
guestos.gpu.mem_temp_too_high |
GPU显存温度过高 |
GPU显存温度过高 |
guestos.gpu.fan_error |
GPU风扇异常 |
GPU风扇异常,存在ERR! |
guestos.gpu.power_error |
GPU功耗异常 |
GPU功耗异常,存在ERR! |
guestos.gpu.memory_usage_too_high |
GPU显存使用过高 |
GPU显存使用过高,可能会出现程序崩溃 |
guestos.gpu.gpu_usage_too_high |
GPU算力使用过高 |
GPU算力使用过高,可能存在算力不够的情况 |
guestos.gpu.pcie_link_error |
GPU带宽异常 |
GPU带宽异常,可能硬件出错 |
guestos.gpu.pstate_low |
GPU性能等级低 |
GPU性能等级低,不能最大限度使用GPU |
guestos.gpu.ecc_mode |
ECC模式未开启 |
ECC模式未开启,无法检查ECC错误 |
guestos.gpu.volatile_ecc_error |
GPU的易失性ECC错误太多 |
GPU的易失性ECC错误超过阈值4 |
guestos.gpu.aggregate_ecc_error |
GPU的聚合性ECC错误太多 |
GPU的聚合性ECC错误超过阈值4 |
guestos.gpu.retired_pages_count_error |
DRAM内存ECC隔离页错误 |
DRAM 内存ECC隔离页超标阈值60 |
guestos.gpu.retired_pages_pending_error |
DRAM ECC页隔离待生效 |
DRAM ECC页隔离待生效 |
guestos.gpu.xid_error |
GPU存在XID错误 |
GPU存在XID错误 |
guestos.gpu.kernel_version_error |
GPU内核版本不一致错误 |
GPU驱动安装内核和当前内核版本不一致 |
guestos.gpu.nouveau_error |
nouveau驱动未禁用错误 |
nouveau驱动未禁用错误 |
guestos.gpu.cuda_tips |
cuda未安装提示 |
cuda未安装提示 |
guestos.gpu.fabricmanager_error |
fabricmanager未安装错误 |
fabricmanager未安装错误 |
guestos.gpu.sram_ecc_too_many_error |
SRAM ECC报错太多 |
SRAM ECC报错 |
guestos.gpu.remapped_dram_ecc_error |
DRAM ECC过多导致行重映射失败 |
DRAM ECC错误重映射失败 |
guestos.gpu.dram_ecc_pending_error |
DRAM ECC行重映射待生效有错误 |
DRAM ECC行重映射待生效有错误 |
guestos.gpu.volatile_dram_correctable_too_many_error |
DRAM 可纠正ECC报错太多 |
DRAM 可纠正ECC报错太多,大于1000 |
guestos.gpu.volatile_dram_uncorrectable_too_many_error |
DRAM 不可纠正ECC报错太多 |
DRAM 不可纠正ECC报错太多,大于60 |
guestos.system.missing_initramfs |
initramfs文件检查 |
该实例缺少系统启动必须的initramfs文件,会导致该实例启动出现异常,无法正常进入系统 |
guestos.system.missing_initramfs_module |
initramfs文件关键驱动检查 |
该实例缺少QingTian实例启动必须的驱动文件virtio_scsi,会导致该实例在部分规格上启动出现异常 |
guestos.system.missing_grubcfg |
grub配置文件检查 |
该实例缺少系统启动必须的grub配置文件,会导致该实例启动出现异常 |
guestos.system.missing_vmlinuz |
vmlinuz文件检查 |
该实例缺少系统启动必须的vmlinuz文件,会导致该实例启动出现异常 |
guestos.system.conflict_ntp_service |
实例的时间同步服务检查 |
实例当前既运行chronyd时间同步服务又运行了ntpd时间同步服务,两个服务在部分场景会存在冲突,无法保证实例节点时钟的稳定 |
guestos.system.ntp_service_status_abnormal |
实例的时间同步服务运行状态检查 |
实例的时间同步服务运行状态异常,未处于running状态 |
guestos.system.ntp_service_enablestatus_abnormal |
实例的时间同步服务开机自起动配置检查 |
实例的时间同步服务开机自起动状态异常,未处于enabled状态 |
guestos.filesystem.duplicate_fs |
fstab文件中重复文件系统检查 |
实例fstab文件中存在重复的文件系统挂载配置 |
guestos.filesystem.fstab_uuid_status |
fstab文件UUID检查 |
实例fstab文件中未使用UUID声明文件系统 |
guestos.filesystem.fstab_duplicate_mount |
fstab文件重复挂载点检查 |
实例fstab文件中存在重复的挂载点 |
guestos.filesystem.mount_path_mismatch |
fstab文件挂载对应关系与实际挂载一致性检查 |
fstab文件中的文件系统与目录的挂载对应关系与实际挂载不一致 |
guestos.filesystem.fstype_mismatch |
fstab文件fstype与实际文件系统fstype一致性检查 |
fstab文件中的fstype与实际文件系统的fstype不一致 |
guestos.filesystem.blkid_duplicate_uuid |
实例存在多个文件系统UUID一致 |
实例存在多个文件系统UUID一致 |
guestos.filesystem.ext4_not_clean |
实例存在状态异常的ext4文件系统 |
实例存在异常的ext4文件系统 |
guestos.network.static_ip_not_work |
实例网卡静态ip配置未生效 |
实例网卡静态ip配置未生效 |
guestos.network.dhclient_not_work |
实例网卡dhcp客户端常驻进程异常 |
实例网卡dhcp客户端常驻进程异常 |
guestos.network.network_service_abnormal |
实例网络服务异常 |
实例网络服务处于异常状态 |
guestos.system.serial_port_log_not_configured |
实例串口日志输出检查 |
实例串口日志输出检查 |
guestos.system.page_allocation_failure |
实例日志打印内存页分配失败 |
实例出现内存页分配失败的问题 |
guestos.system.fork_failed |
实例日志打印创建新的进程失败 |
实例出现无法创建线程的问题 |
guestos.system.too_many_open_files |
实例日志打印无法打开新的文件 |
实例出现无法打开新的文件句柄的问题 |