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

相关推荐
开发小能手-roy6 分钟前
linux Ubuntu 用户权限设置
linux·运维·ubuntu
SoFlu软件机器人17 分钟前
AI 重构 Java 遗留系统:从静态方法到 Spring Bean 注入的自动化升级
java·spring·重构
liwulin050619 分钟前
【JAVA】JVM 堆内存“缓冲空间”的压缩机制及调整方法
java·开发语言·jvm
开心猴爷20 分钟前
《Flutter从入门到实战:手把手构建跨平台应用(万字深度解析)》
后端
开心就好202520 分钟前
Flutter组件/插件开发及发布流程
后端
bcbnb23 分钟前
Flutter plugin插件制作详细过程以及发布到pub.dev的步骤
后端
小白探索世界欧耶!~27 分钟前
【踩坑】GitHub Actions 运行的 Linux 环境中,文件名是大小写敏感的
linux·运维·服务器·前端·vue.js·笔记·github
lyingcloud29 分钟前
debian系统中文输入法失效解决
linux·运维·debian
新程快咖员39 分钟前
【编程分享】如何去覆盖lombok中使用@Builder注解生成的Builder类的ToString()方法?
后端
程序员小假40 分钟前
十个JVM核心知识点【全文万字保姆级详细讲解】
java·后端