《企业运维之弹性计算原理与实践》——ECS 进阶概念-运维——第三章(下)实验 2:ECS 问题排查及实验案例(2) https://developer.aliyun.com/article/1231581?groupCode=supportservice
三、 CPU 问题排查
1. CPU 指标
• Load average:是一段时间内系统的平均负载,这个一段时间一般取 1 分钟、5 分钟、15 分钟,所以会有三个值;当 load=1 时:CPU 满负荷
• us,user:用户空间占用 CPU 百分比 sysystem:内核空间占用 CPU 百分比
• ni,nice:用户进程空间内改变过优先级的进程占用 CPU 百分比
• id,idle:空闲 CPU 百分比
• wa,IO-wait:等待 IO 的 CPU 时间百分比
• hi:硬件 CPU 中断占用百分比
• si:软中断占用百分比
• st:虚拟机管理进程从这个虚拟机偷走的 CPU 资源
2. 云监控
云监控(Cloud Monitor)是一项针对阿里云资源和互联网应用进行监控的服务。云监控服务可用于收集获取阿里云资源的监控指标,探测互联网服务可用性,以及针对指标设置警报。
云监控示意图
3. 排查案例
• 现象:通过 top 命令查看到主机中 CPU 的 us+sy 占用是比较高的,表示这个CPU 核上用户态程序和内核态的程序占用比较大。
进一步排查思路:
1) 因为能看到是 nginx 进程,那么可以结合 nginx 日志分析当时业务访问。
2) 找到对应进程的 perf 信息,从热点调用截图(见下图)中可以看到,除了与kprobe 相关的,其他有一部分是内核态处理软中断、报文收发处理,是导致sy 高的原因,说明当时请求 nginx 的量可能比较大,内核态处理报文占用了sy 部分的 CPU。使用 iftop(外置命令)结果可以查看流量情况。