线上项目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生成进程堆栈信息,进行查找问题所在。

相关推荐
sunshine22 girl32 分钟前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
IT_陈寒1 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
wangbing11251 小时前
使用jps jstack排查系统问题
java
于指尖飞舞1 小时前
java面试题总结
java·开发语言
打工仔折腾 AI1 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战
DYWorker0012 小时前
Linux驱动:RK3568 GMAC + YT8531C 千兆以太网全流程解剖
linux
ZealSinger2 小时前
LangChain4j用AiServices拼Tool
java·rag·ai智能体·langchain4j
vx_Biye_Design2 小时前
springboot高校选课系统82776-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
lisanmengmeng3 小时前
NRPE 添加命令(一)
linux·运维·服务器