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

相关推荐
gensue21 小时前
【征文计划】深度解析Rokid UXR 2.0 SDK:Unity开发者的空间计算开发利器
后端
一只小风华~21 小时前
Vue Router 导航守卫
java·前端·javascript·vue.js·笔记·html
Cg1362691597421 小时前
封装的实现和定义
java·开发语言
wxin_VXbishe21 小时前
基于SpringBoot的天天商城管理系统的设计与现-计算机毕业设计源码79506
java·c++·spring boot·python·spring·django·php
ZhiqianXia21 小时前
Linux 内核中控制调试输出的频率和次数
linux
Su-RE21 小时前
【ElasticSearch】text 和 keyword 类型区分
java·数据库·elasticsearch
武子康21 小时前
Java-146 深入浅出 MongoDB 数据插入、批量写入、BSON 格式与逻辑查询and or not操作指南
java·开发语言·数据库·sql·mongodb·性能优化·nosql
limuyan4421 小时前
realm解密,realm数据库分析
后端
xyy12321 小时前
缓存方案对比 - SQLite vs. Redis
后端