分析占用了大量 CPU 处理时间的是Java 进程中哪个线程

Crq
Crq
Crq
412
文章
0
评论
2024年9月12日10:59:05
评论
4 544字阅读1分48秒
摘要

本文的目的是在 Java进程中确定哪个线程正在占用CPU的时间。 当您的系统 CPU 负载居高不下时,这是一种有用的故障排除技术。

本文的目的是在 Java进程中确定哪个线程正在占用CPU的时间。 当您的系统 CPU 负载居高不下时,这是一种有用的故障排除技术。
下面是详细步骤:

1. 首先确定进程的 ID ,可以使用 jps -v 或者 top 命令直接查看

2. 查看该进程中哪个线程占用大量 CPU,执行 top -H -p [PID] 结果如下:

可以发现编号为 350xx 的共有 9 个线程占用了 100% 的 CPU,好,接下来咱们随便取一个线程 ID ,假设我们想看编号为 35053 这个线程。

首先将 35053 转成 16 进制是 88ED (可以用开源中国在线工具转换)

3. 接下来我们将进程中的所有线程输出到一个文件中,执行:jstack [PID] > jstack.txt

4. 在进程中查找对应的线程 ID,执行:cat jstack.txt | grep -i 88ED

结果是:

"HTTP Request From : /xxxx/blog/323432(120.27.143.239)" #266 daemon prio=5 os_prio=0 tid=0x00007fcda4146800 nid=0x88e runnable [0x00007fcd54178000]

由此可以看出在请求 /xxxx/blog/323432 链接的时候,服务器的处理线程占用了 100% 的 CPU。

找到问题后,接下来去解决就好了!

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年9月12日10:59:05
  • 转载请注明:https://www.cncrq.com/10685.html
用 sar 工具检测系统性能瓶颈 Linux教程

用 sar 工具检测系统性能瓶颈

sar 命令用用收集、报告、或者保存 UNIX / Linux 系统的活动信息。它保存选择的计数器到操作系统的 /var/log/sa/sadd 文件中。从收集的数据中,你可以得到许多关于你的服务器的...
Linux tar 用法介绍 Linux教程

Linux tar 用法介绍

tar 命令可以为Linux的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上...
Linux下防御ddos攻击 Linux教程

Linux下防御ddos攻击

Linux服务器在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底的解决方法是添置硬...
Ubuntu16.04 用VNC链接 XFCE4 桌面 Linux教程

Ubuntu16.04 用VNC链接 XFCE4 桌面

在本指南中,我们将是一个Ubuntu的16.04服务器上设置VNC和通过SSH隧道连接到其牢固。我们将使用VNC服务器是TightVNC的,一个快速,轻量级的遥控器包。这个选择将确...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: