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

相关推荐
计算机毕业设计指导17 分钟前
基于Spring Boot + Vue 3的社区养老系统设计与实现
vue.js·spring boot·后端
拾忆,想起17 分钟前
Redisson 分布式锁的实现原理
java·开发语言·分布式·后端·性能优化·wpf
焰火199918 分钟前
[Java][SpringBoot]AspectJ切面配合自定义注解实现权限校验
java
几颗流星18 分钟前
Rust 常用语法速记 - 解构赋值
后端·rust
口嗨农民工21 分钟前
linux 时间相关的命令
linux·运维·服务器
我想当数字游民23 分钟前
Go的切片是什么?一些小细节和容易错的地方
后端·golang
肖焱25 分钟前
Java中的集合类有哪些?如何分类的?
后端
野生程序员y27 分钟前
Spring DI/IOC核心原理详解
java·后端·spring
evo-master1 小时前
网络编程-HTTP
linux·网络
是萝卜干呀1 小时前
IIS 部署 asp.net core 项目时,出现500.19、500.31问题的解决方案
后端·iis·asp.net·hosting bundle