首页 > 其他分享 >【JVM基础19】——实践-CPU飙高排查方案和思路?

【JVM基础19】——实践-CPU飙高排查方案和思路?

时间:2024-08-07 17:56:17浏览次数:15  
标签:十六进制 19 id 飙高 线程 JVM 2266 CPU

目录


1- 引言:

  • CPU 飙高指的是项目在运行过程中导致服务器的 CPU 内存占用较高。

2- ⭐核心:

2-1 排查方案与思路

  1. 使用 top 命令查看占用 CPU 的情况
top

image.png

  1. 通过 top 命令查看后,可以查看是哪一个进程占用 CPU 较高,上图所示为 2266
  • 找到进程之后,目的是找到 java 项目中的哪一行代码导致 CPU 飙高的问题,由于代码的运行都是在线程中运行,
  1. 使用 ps 的 Linux 指令
ps -H -eo pid,tid,%cpu | grep 2266
  • 打印出了所有 2266 进程中的线程,可以看到其中 2276 占用 CPU 特别高

image.png

  1. 使用 一下 jstack + 进程 id
jstack 2266
  • 此时打印出所有线程的信息,可需要筛选出 上述 CPU 占用高的线程,2276
  • 同时 jstack 打印的信息中的线程 id 都是十六进制,因此需要通过 Linux 命令将十进制转为 十六进制
  1. 使用 Linux 将十进制线程 id 转为 十六进制
  • 通过 十六进制 的线程 id 找到对应的信息,定位到代码行
printf "%x\n" 2276

3- 小结:

3-1 如何排查 CPU 飙高问题?

在这里插入图片描述

标签:十六进制,19,id,飙高,线程,JVM,2266,CPU
From: https://blog.csdn.net/weixin_44382896/article/details/140998055

相关文章

  • CF1999题解
    题目链接CF1999A解题思路模拟。没了。参考代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?打cf不要用umap!!!记住,rating是身外之物。该冲正解时冲正解!Problem:算法:思路:*/#include<bits/stdc++.h>usin......
  • JVM问题定位工具
    1.jstack可以分析java进程中,线程死锁/线程问题案例1死锁`@ApiOperation("登录")@PostMapping("/login")@ResponseBodypublicCommonResultlogin(@RequestBodyUmsAdminLoginParamumsAdminLoginParam){newThread(()->{synchronized(lockA){try{System.......
  • 计算机毕业设计必看必学! ! 79197 基于ssm+mysql的学生心理健康在线咨询平台,原创定制
    摘要:在社会快速发展的影响下,教育业继续发展,大大增加了学生心理健康在线咨询平台的数量、多样性、质量等等的要求,使学生心理健康在线咨询平台的管理和运营比过去十年更加困难。依照这一现实为基础,设计一个快捷而又方便的学生心理健康在线咨询平台是一项十分重要并且有价值的事......
  • 修改微信(3.9.10.19版本)系统托盘图标(傻瓜教程)
    微信版本:进行以下操作先退出微信1.iconfontLogo下载一个图标png,大小为256像素,前面颜色自己看着弄2.png转ico,转化链接(转化的网站很多不一定非要是这个)3.下载后续所需程序(ResHacker和IconWorkshopPortable)备用下载链接4.找到右击微信快捷键点击属性,打开所在位置,在文......
  • 【JVM基础15】——实践-JVM调优的参数有哪些?
    目录1-引言:2-⭐核心:2-1设置堆空间大小2-2虚拟机栈的设置2-3年轻代Eden区和两个Survivor区的大小比例2-4年轻代晋升老年代阈值2-5设置垃圾回收器3-小结:3-1JVM调优的参数有哪些?1-引言:对于JVM调优,主要就是调整年轻代、老年代、元空间的内存空间大小......
  • [翻译] RFC 1928: SOCKS 协议第 5 版
    https://luyuhuang.tech/2020/08/27/rfc1928.html文档声明本文档为互联网社区规范了一个互联网标准跟踪的协议,并征求讨论和改进建议.请参阅当前版本的“互联网官方协议标准(STD1)”以获取此协议的标准化的状态.本文档的发布不受限制.致谢本文描述的协议是其之前版本(......
  • Day19--Java多线程编程入门学习
    1.什么是多线程?多线程是一种并发编程技术,它允许程序同时执行多个线程。线程是程序执行的基本单位,一个程序至少有一个线程,即主线程。通过使用多线程,可以在一个程序中同时处理多个任务,提高程序的效率和响应能力。2.为什么要使用多线程?提升性能:在多核处理器上,多线程可以将......
  • CF1920D题解
    题面这里不再赘述了,直接搬个链接。InLuoguInCodeforces思路存储一共两种操作:要么在末尾加一个数xxx,要么把整一段复制......
  • Mac开发基础19-NSTableView(二)
    进阶使用和技巧1.单击和双击行事件处理Objective-C//单击行时的处理-(void)tableView:(NSTableView*)tableViewdidClickTableColumn:(NSTableColumn*)tableColumn{NSIntegerclickedRow=[tableViewclickedRow];if(clickedRow>=0){NSLog(@"Si......
  • 1990-2023年上市公司常用变量数据(1400+指标)
    1990-2023年上市公司常用变量数据(1400+指标)1、时间:1990-2023年2、范围:上市公司3、格式:dta4、来源:上市公司年报5、指标:包括上市公司基本信息(性质、行业、地址)、财务状况(资产负债、利润表、现金流量、偿债能力、披露财务、比率结构、经营能力、盈利能力、现金流量、风险水平......