当Linux系统ECS实例CPU使用率或CPU负载较高时,如何排查分析及常见案例说明?-阿里云服务器ECS使用教程 |
产品推荐: 1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>; 2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>> 3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>> 4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>> 点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>> 本文主要介绍当Linux系统ECS实例CPU使用率或CPU负载较高时,如何排查分析及常见案例说明。 操作场景在您使用ECS实例过程中,可能会遇到实例CPU使用率或CPU负载持续较高的情况,您可以按照以下步骤排查定位具体问题。
CPU负载的查询分析在Linux系统中,查看进程的常用命令如下所示。本文主要介绍vmstat和top常用命令的使用。
vmstat(VirtualMemoryStatistics,虚拟内存统计),通过vmstat命令,从系统维度查看操作系统的虚拟内存、进程、CPU等的整体情况。 vmstat命令常用vmstat命令如下所示。 vmstat [-n] [delay [count]] 使用示例执行如下命令,使用vmstat每1秒统计一次各进程的CPU使用情况,连续统计4次。 vmstat -n 1 4 返回示例类似如下。 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 2684984 310452 2364304 0 0 5 17 19 35 4 2 94 0 0 0 0 0 2687504 310452 2362268 0 0 0 252 1942 4326 5 2 93 0 0 0 0 0 2687356 310460 2362252 0 0 0 68 1891 4449 3 2 95 0 0 0 0 0 2687252 310460 2362256 0 0 0 0 1906 4616 4 1 95 0 0 显示结果主要字段说明
常见CPU资源过高案例分析案例一:CPU使用率较低但负载较高问题现象当前Linux系统没有业务程序运行。通过top命令观察,发现CPU使用率不高,但是CPU负载(load average)却非常高,如下图所示。 问题原因该问题可能是因为僵尸(zombie)进程过多导致。 load average是对CPU负载进行评估的,其值越高说明其任务队列越长,处于等待执行的任务越多。 解决方案您可以通过 处于该状态的进程无法终止,也无法自行退出,只能通过恢复其依赖的资源或者重启系统来解决。 案例二:kswapd0进程占用CPU较高问题现象ECS实例运行卡顿,使用 问题原因出现该问题可能是系统此时在持续进行换页操作,导致占用大量CPU资源。 kswapd0是虚拟内存管理中负责换页的进程,当ECS实例物理内存不足时,kswapd0会执行换页操作,换页操作会消耗大量的CPU资源。 解决方案您可以通过修改vm.swappiness内核参数来控制交换空间的大小,来解决kswapd0进程占用CPU较高的问题。
案例三:CPU使用率过高100%问题排查问题现象使用ECS实例的过程中,如果遇到CPU使用率高达100%等异常情况,且无法通过top、htop等命令查询到消耗CPU资源的具体进程。 问题原因该问题可能是病毒导致。 解决方案
|