笔记 · 2022年10月29日 0

Java的CPU性能排查-java的cpu性能排查

内容目录

title: Java的CPU性能排查
date: 2022-10-29 08:14:19.042
updated: 2022-10-29 08:14:19.042
url: https://ritoom.me/archives/java的cpu性能排查
categories:
tags:

Java性能优化-CPU

近期观察到服务器运行的Java程序CPU占用过高,往往是程序运行时使用了大量资源并且不会释放,最终引发了阿里云报警。

原因排查

  1. 使用top命令查找占用CPU资源最多的Java进程PID
  2. 使用top -H -p [java进程id]命令查找占用最多CPU资源的线程,并记录下pid
  3. 计算Java线程pid的十六进制值,因为后续用jstack看到的线程快照中,线程id为小写十六进制值
    1. Linux可使用命令:printf "%xn" [线程_id]
  4. 使用命令 jstack [java进程pid] | grep [线程id十六进制值] -A 30(-A 30表示向下打印30行)

执行完第4条完成后,就可以定位到具体的业务代码,最后就可以根据代码优化了。

https://blog.csdn.net/jwentao01/article/details/115461695

其他方法

Arthas

这是阿里云开源的一款在线性能分析工具,封装了很多jvm方法,通过命令行的方式,可以查看内存占用、CPU占用、堆栈异常等问题

[Arthas – Java 线上问题定位处理的终极利器]
官方文档