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

相关推荐
Lyyaoo.2 分钟前
【Java基础面经】Java 反射机制
java·开发语言·python
货拉拉技术6 分钟前
数据质量告警平台的建设与应用实践
后端
信工 18026 分钟前
rk3568-Linux应用程序和驱动程序接口
linux·驱动开发·rk3568
YXWik67 分钟前
Langchain4j(1)基础对话+连续对话+工具调用 + 流式响应+结构化 JSON 输出
java
m0_6948455717 分钟前
UVdesk部署教程:企业级帮助台系统实践
服务器·开发语言·后端·golang·github
967718 分钟前
什么是 Thymeleaf?
java
Dream_sky分享24 分钟前
找类中字段属性不同工具类
java
givemeacar30 分钟前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
woniu_maggie34 分钟前
SAP FICO 分割评估_sap凭证分割配置
后端
十六年开源服务商35 分钟前
家庭装修公司网站方案策划2026
java·开发语言