线上项目CPU飙升排查流程

编写一段死循环程序,部署到linux服务器,以后台启动的方式启动,访问这段程序:

浏览器访问暴露出的请求接口:

观察Linux服务器cpu占用情况:

开始排查:

1.使用linux命令:top,查看cpu占用情况,降序排序:

得到进程:97101进程占用CPU使用率高

2.查看进程下线程占用情况:命令:top -p 进程id -H

3.使用jdk自带工具:jstack 打印进程堆栈信息:

jstack 97101【进程id】 > pid.log

  1. 刚刚查询到的进程下的线程占用率高的线程id,转换为16进制,然后到进程的堆栈信息日志表进行查询:

printf "%x" 97158 【线程id】

得到16进制数:17b86

  1. 打开刚刚生成的pid.log文件,查询 17b86 线程的堆栈信息:

查看到编写的项目文件,以及程序行号:

总结:使用linux命令top查询出占用cpu高的进程与线程信息,使用jdk自带的工具jstack生成进程堆栈信息,进行查找问题所在。

相关推荐
赖small强4 小时前
【Linux C/C++ 开发】 GCC 编译过程深度解析指南
linux·c语言·c++·预处理·链接·编译·编译过程
掘金码甲哥4 小时前
🎉刚入职的AIops菜鸡,应该知道gang-scheduling和binpack调度吗?
后端
做人不要太理性4 小时前
【Linux系统】ext2文件系统
大数据·linux·操作系统·文件系统
保持低旋律节奏5 小时前
linux——软件包、yum 安装和卸载
linux·运维·服务器
青云交5 小时前
Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享中的应用
java·智能停车·故障预测·极端气候适配·车位共享·民生应用·政企协同
從南走到北5 小时前
JAVA代驾小程序源码代驾跑腿APP源码
java·开发语言·微信·微信小程序·小程序
莫道桑榆晚丶5 小时前
Linux系统编程--------MP3项目实战
linux·学习
李贺梖梖5 小时前
day01 Java概述、IDEA安装、Java基础语法
java
urkay-5 小时前
Android getDrawingCache 过时废弃
android·java·开发语言·kotlin·iphone·androidx
小oo呆5 小时前
【学习心得】Python好库推荐——pipx
linux·开发语言·python