linux的CPU使用率达到100%的快速定位过程

 更新时间:2024年12月18日 14:42:06   作者:忍冬行者  
本文描述了在CentOS 7.9操作系统上排查CPU异常告警的过程,通过使用top和jstack命令,找到了最耗CPU的进程和线程,并根据堆栈信息定位到了对应代码

问题现象

Linux服务器(操作系统版本是centos7.9)上面部署了若干Java站点服务,突然收到运维的CPU异常g告警,到了影响业务的情况发生,经初步排查,未出现异常进程,排除挖矿病毒的原因。

排查思路

(1)找到最耗CPU的进程;

(2)找到最耗CPU的线程;

(3)查看堆栈,定位线程在干嘛,定位对应代码;

排查步骤

1.找到最耗CPU的进程

方法:使用top命令

  • 执行top -c ,显示进程运行信息列表
  • 键入P (大写p),进程按照CPU使用率排序

2.找到最耗CPU的线程

方法:使用top工具

  • top -Hp ,显示一个进程的线程运行信息列表
  • 键入P (大写p),线程按照CPU使用率排序
  • top -Hp 30365

3.查看堆栈,定位线程在干嘛,定位对应代码

  • 首先,将线程PID转化为16进制。
  • 工具:printf
  • 方法:printf "%x\n" 6080

如上图,6080对应的16进制是0x17c0

之所以要转化为16进制,是因为堆栈里,线程id是用16进制表示的

4.查看堆栈,找到线程在干嘛

  • 工具:jstack
  • 方法:jstack 30365 | grep '0x17c0' -C5 --color
  • 最后,根据堆栈里的信息,找到对应的代码.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 安装Ubuntu 20.04后要做的事(小白教程)

    安装Ubuntu 20.04后要做的事(小白教程)

    这篇文章主要介绍了安装Ubuntu 20.04后要做的事(小白教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 实战基本的Linux sed命令示例代码

    实战基本的Linux sed命令示例代码

    Linux流编辑器是在数据中心中运行脚本的一种有用方法。通过这些命令示例,您可以开始熟悉sed,需要的朋友可以参考下
    2018-10-10
  • ubuntu下apache服务器操作方法小结

    ubuntu下apache服务器操作方法小结

    这篇文章主要介绍了ubuntu下apache服务器操作方法小结,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Ubuntu18.04安装Python虚拟环境

    Ubuntu18.04安装Python虚拟环境

    这篇文章主要介绍了Ubuntu18.04安装Python虚拟环境的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • Linux下如何实现创建/删除软连接

    Linux下如何实现创建/删除软连接

    这篇文章主要介绍了Linux下如何实现创建/删除软连接方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    Ubuntu 16.04安装MySQL及需要其他主机远程连接MySQL时的设置问题。在安装过程中会出现各种奇葩问题,下面小编给大家带来了Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061),一起看看吧
    2016-10-10
  • 比较详细的基于CentOS的WWW服务器架设指南

    比较详细的基于CentOS的WWW服务器架设指南

    本文参考了网上高手的教程和结合自己的实践经验而来。网上关于LAMP安装配置的教程虽然很多,但长篇大论的让你抓不到重点,短小精悍的对新手来说又难了点,所以初次配置时最容易在某个环节卡住,从而打击了学习的激情或者耽误了宝贵的时间。于是就整理出这个学习笔记。如果文中有错误的地方,恳请大家指正,不要误导了初学者。
    2008-06-06
  • Apache多路复用模块(MPMs)介绍

    Apache多路复用模块(MPMs)介绍

    这篇文章主要介绍了Apache多路复用模块(MPMs)介绍,MPM,也叫多道处理模块(Multi Processing Module),关系到整个HTTP会话,本文就介绍它的相关知识,需要的朋友可以参考下
    2015-01-01
  • 使用命令行检测Ubuntu版本方法

    使用命令行检测Ubuntu版本方法

    在本篇文章中小编给大家整理了关于使用命令行检测Ubuntu版本方法和相关代码,有兴趣的朋友们学习下。
    2019-03-03
  • Linux使用crontab定时执行脚本任务的流程详解

    Linux使用crontab定时执行脚本任务的流程详解

    在Linux中可以使用crontab来定时执行脚本,crontab是一个用于管理定时任务的工具,可以让在特定的时间间隔内自动运行脚本或命令,本文我们将使用cron来定期执行一个写入命令或脚本,需要的朋友可以参考下
    2023-10-10

最新评论