Linux系统CPU占用率较高问题排查思路
作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失。 很多运维的同学遇到这种状况往往会不知所措,对于CPU过载问题通常使用以下两种方式即可快速定位: 方法一 第一步:使用
找到占用CPU过高的进程的pid 第二步:使用
找到进程中消耗资源最高的线程的id 第三步:使用
将线程id转换为16进制(字母要小写)
第四步:执行
查看线程状态信息 方法二 第一步:使用
找到占用CPU过高的进程 第二步:使用
获取线程信息,并找到占用CPU高的线程 第三步:使用
将需要的线程ID转换为16进制格式 第四步:使用
打印线程的堆栈信息 案例分析 1. 场景描述 生产环境下JAVA进程高CPU占用故障排查 2. 解决过程 (1) 根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。 (2) 找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
显示结果如下: 找到了耗时最高的线程(TID)3626,占用CPU时间有12分钟了! (3) 将需要的线程TID转换为16进制格式
(4) 最后使用jstack命令打印出该进程下面的此线程的堆栈信息:
相比故障的解决而言,发现故障也同等的重要!市场上的大多数监控软件都能实现服务器负载的实时观测,比如:Zabbix、Nagios、阿里云监控(针对云服务器)等。但是当中大部分的软件都需要运维同学主动去设置规则或者检测才能发现问题,如何被动的也能收到告警呢? 推荐大家一个实用的运维软件——王教授,对于业务部署在阿里云上的用户,只需绑定需要监控的只读AcessKey,即可将云上资源的告警信息及时通知给对应的团队成员。 化主动为被动的方式,一方面减轻了运维工程师的工作,另一方面也减小了运维漏看或者忽略告警的情况发生。 【编辑推荐】
点赞 0 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2003 – 如何判断哪台计算机在网络共享上打
- Windows 10直接运行Xbox游戏,微软目标是星辰大海
- 杀死僵尸进程,你需要这些神奇高效的Linux命令行
- windows-7 – 使用代理和远程桌面网关连接到远程桌面?
- windows – 通过Citrix Receiver(或Citrix服务器)登录Citri
- Win10怎么整顿磁盘碎片 Win10整理磁盘碎片方法
- 管理Windows 10设置以获得更好的性能
- 微软回应Windows 10问题多:靠AI和机器学习是必然
- 万维网之父推开源项目Solid:将Web去中心化/让用户掌控数据
- Win11更新包体积暴减 40% 运用时段等功能将默认打开