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

相关推荐
minji...2 分钟前
Linux 网络套接字编程(六)TCP的通信是全双工的,自定义协议的定制,序列化和反序列化
linux·运维·服务器·网络·c++
Bat U4 分钟前
JavaEE|多线程(六)
java·java-ee
胡利光9 分钟前
Context Engineering 实战 02|System Prompt 是架构决策,不是写说明书
java·架构·prompt
sinat_2554878111 分钟前
数组·学习笔记
java·javascript·笔记
江离w12 分钟前
codex等vibe coding初始化后端项目指令
java
Paxon Zhang12 分钟前
JavaEE 初阶大师之路之*线程,多线程编程,Thread类,变量捕获,中断线程* 一文全部搞懂!!
java·java-ee
xdscode13 分钟前
Spring Boot Actuator 接入与运维实践指南
spring boot·后端·actuator
晚风予卿云月13 分钟前
【linux】僵尸进程与孤儿进程
linux·运维·服务器
逻辑驱动的ken15 分钟前
Java高频面试考点场景题16
java·开发语言·面试·职场和发展·求职招聘
故事还在继续吗17 分钟前
Linux cgroup 使用指南:从原理到实践
linux·运维·服务器