markdown 快速定位消耗CPU的java的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 快速定位消耗CPU的java的问题相关的知识,希望对你有一定的参考价值。

# 问题排查
## 步骤
1. top 命令查看是哪个进程耗费系统资源
2. top -Hp pid 查看指定进程的所有子线程的资源消耗情况,找到最耗资源的线程号,将线程号转换为16进制
3. 通过jstack pid 打印堆栈并输出到文件,在该文件中搜索转换为16进制的线程号

## 示例
例如一下堆栈信息,其中nid=0x203ea就是16进制线程号,据此我们可以查找到耗费资源的具体进程信息。
```
    "FlowRunner-exec-8542" #126 prio=5 os_prio=0 tid=0x00007fbda8016000 nid=0x203ea waiting on condition [0x00007fbe5496c000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x000000070013b6d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
```

以上是关于markdown 快速定位消耗CPU的java的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何快速定位当前数据库消耗 CPU 最高的 sql 语句

如何快速定位当前数据库消耗 CPU 最高的 sql 语句

如何快速定位当前数据库消耗CPU最高的sql语句?

如何快速定位JVM中消耗CPU最多的线程?

数据库消耗 CPU 最高的 sql 语句如何定位?

java性能问题排查提效脚本工具