IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【help】JVM的CPU资源占用过高问题的排查 -> 正文阅读

[Java知识库]【help】JVM的CPU资源占用过高问题的排查

JVM的CPU资源占用过高问题的排查

jstack命令格式:
jstack [ option ] pid

参数说明:

-F jstack [-l] pid无法响应时,强制打印堆栈
-l l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.
-m 混合模式输出(包括java和本地c/c++片段)堆栈。
pid: java应用程序的进程号

参数是互斥的,不能联合使用。

jstack生成的Thread Dump日志结构解析

jstack -l 25440 > c:/25440.stack

2021-02-01 10:14:10
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.231-b11 mixed mode):

"MySQL Statement Cancellation Timer" #513 daemon prio=5 os_prio=0 tid=0x0000000020de0800 nid=0x2e74 in Object.wait() [0x0000000069e0f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000006e18d6598> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
	- None

"Druid-ConnectionPool-Destroy-968174377" #459 daemon prio=5 os_prio=0 tid=0x0000000020de0000 nid=0x32e8 waiting on condition [0x000000006311f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2824)

   Locked ownable synchronizers:
	- None

"Druid-ConnectionPool-Create-968174377" #458 daemon prio=5 os_prio=0 tid=0x0000000020dd9000 nid=0x16e4 waiting on condition [0x000000006301f000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c3ee6cd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2728)

   Locked ownable synchronizers:
	- None

jstack -F PID > c:/jstack.25440.txt 查询IN_VM进行查找相关类方法排查

Attaching to process ID 25440, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.231-b11
Deadlock Detection:

No deadlocks found.

Thread 133: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
 - java.lang.Object.wait() @bci=2, line=502 (Compiled frame)
 - java.util.TimerThread.mainLoop() @bci=28, line=526 (Interpreted frame)
 - java.util.TimerThread.run() @bci=1, line=505 (Interpreted frame)

Thread 95: (state = BLOCKED)
 - com.****.patrol.util.PatrolHelper.getRuleByTime(com.****patrol..entity.StatRule, java.time.LocalDateTime) @bci=430, line=304 (Compiled frame; information may be imprecise)
 - com.****.patrol.util.PatrolHelper.getStatRule(java.util.List, java.time.LocalDateTime) @bci=51, line=226 (Compiled frame)
 - com.****.service.impl.InspectServiceImpl.getCalendarData(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.time.LocalDateTime, java.time.LocalDateTime) @bci=252, line=226 (Compiled frame)
 - com.****.patrol.controller.InspectController.getCalendarData(java.lang.String, java.lang.String, java.lang.String, java.time.LocalDateTime, java.time.LocalDateTime) @bci=78, line=127 (Interpreted frame)

Thread 93: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14, line=175 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=42, line=2039 (Compiled frame)
 - java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=442 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=149, line=1074 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=26, line=1134 (Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5, line=624 (Interpreted frame)
 - java.lang.Thread.run() @bci=11, line=748 (Interpreted frame)


Thread 92: (state = IN_VM)
 - com.****.patrol.util.PatrolHelper.getRuleByTime(com.****.patrol.entity.StatRule, java.time.LocalDateTime) @bci=430, line=304 (Compiled frame; information may be imprecise)
 - com.****.patrol.util.PatrolHelper.getStatRule(java.util.List, java.time.LocalDateTime) @bci=51, line=226 (Compiled frame)
 - com.****.patrol.service.impl.InspectServiceImpl.getCalendarData(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.time.LocalDateTime, java.time.LocalDateTime) @bci=252, line=226 (Compiled frame)
 - com.****.patrol.controller.InspectController.getCalendarData(java.lang.String, java.lang.String, java.lang.String, java.time.LocalDateTime, java.time.LocalDateTime) @bci=78, line=127 (Interpreted frame)

查找com.****.patrol.service.impl.InspectServiceImpl.getCalendarData方法进行排查…

附件参考

参考 Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析
参考 JVM故障分析及性能优化系列
参考 ThreadDump: How to see the condition of waiting / or any other condition?
参考 JVM的CPU资源占用过高问题的排查
参考 Java CPU占用过高问题排查,windows和Linux

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:11:36  更:2022-06-06 17:14:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:52:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码