背景

天天搞java,这些监控也都知道,用过,但也没往细里追究。因为也没碰见这种问题,这次还是静下来走一遍流程吧。与网上基本一致,不过我区分了下linux和windows的不一样。我感觉基本是程序写成死循环了或者大对象分配多了才有这种问题吧。

步骤

1.找到java进程对应的pid。通过任务管理器。linux---top

2.然后把java进程导出快照。直接运行命令。stack -l 31372 > c:/31372.stack

3.在windows下只能查看进程的cpu占用率,要查看线程的cpu占用率要借助其他的工具,我这里用的是微软提供的 Process Explorer v15.3

右键点击需要查看的进程---properties

linux下先输入top,然后再按shift+h 或“H”,此时打开的是线程视图,pid为线程号

4.然后选择 Threads 选项卡,找到占用cpu的线程的tid,比如我这里是 31876 的线程

5.把pid转换成16进制,我这里直接用系统自带的计算器转换,置于为什么要转换,是因为先前用jstack导出的信息里面线程对应的tid是16进制的。

cmd---calc---计算器左上角选择程序员,可进制转换 。最后得到的线程pid的16进制的值为 7C84

6.在 c盘的31372.stack文件中查找 7C84

Thread-23" prio=6 tid=0x03072400 nid=0x1b68 runnable [0x0372f000]

java.lang.Thread.State: RUNNABLE

at com.horn.util.MyEncrypt.encode(MyEncrypt.java:17)

at com.horn.common.OrderUtil.hisExp(OrderUtil.java:228)

at com.horn.util.MsgManage.receiveMsg(MsgManage.java:961)

at com.horn.util.PollMessageThread.run(PollMessageThread.java:74)

Locked ownable synchronizers:      - None

转载于:https://www.cnblogs.com/sddychj/p/9529503.html

windows下揪出java程序占用cpu很高的线程相关推荐

  1. java线程占用CPU_在windows下揪出java程序占用cpu很高的线程并完美解决

    我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...

  2. Java程序占用 CPU 过高怎么排查

    Java程序占用 CPU 过高怎么排查 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅 ...

  3. window服务器cpu过高的排查_高频面试题:Java程序占用 CPU 过高怎么排查

    这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的. 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是 ...

  4. java程序cpu突然飚高_高频面试题:Java程序占用 CPU 过高怎么排查

    这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的.线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一 ...

  5. weblogic占用java_weblogic下java程序占用cpu过高的问题排查

    1.cpu使用情况如图: 2.执行命令 :jstack 126624 > cpu1112.log   (注意执行此命令时的用户需为执行进程的用户,所以此处需要用weblogic用户) 若执行此命 ...

  6. weblogic下java程序占用cpu过高的问题排查

    1.cpu使用情况如图: 2.执行命令 :jstack 126624 > cpu1112.log   (注意执行此命令时的用户需为执行进程的用户,所以此处需要用weblogic用户) 若执行此命 ...

  7. Java占Linux超过xms,linux下分析java程序占用CPU、内存过高

    一.CPU过高分析 1)使用TOP命令查看CPU.内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比.其中CPU状态中标示id的为空闲 ...

  8. Windows服务器java.exe占用CPU过高问题分析及解决

    原文路径:https://blog.csdn.net/ningzuobei/article/details/48828915 最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,C ...

  9. linux下查找java进程占用CPU过高原因

    linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p &l ...

最新文章

  1. Juce源代码分析(一)Juce的优势
  2. C语言用户标准是什么,C语言系统用户标准管理系统.doc
  3. 色彩空间DCI XYZ转RGB
  4. Nacos 开源、自研、商业化三位一体战略解读
  5. [leetcode]111.二叉树的最小深度
  6. 【转】Ubuntu 16.04 Nvidia驱动安装(run方式)
  7. css摇曳的_HTML5+CSS3实现树被风吹动摇晃
  8. visualsvn php,VisualSVN 手动记录访问日志
  9. n的阶乘程序python_Python程序对N阶乘的尾随零进行计数
  10. 【转载】一份不可多得的深度学习技巧指南
  11. atitit.eclipse有多少api  扩展点,以及扩展点的设计
  12. 线上事故复盘报告模板
  13. flexsim怎么设置传送带方向_Flexsim仿真教程学习(六)-分拣系统
  14. VB.Net教程图书目录
  15. SpringBoot项目下载resources目录下模板文件
  16. Woolies因滥发垃圾邮件被罚款100万澳元
  17. 筛选出一些个人常用的快捷键
  18. 【密码学】七、密钥管理
  19. 2017年总结--心情篇
  20. Flutter2.5新特性 中文版

热门文章

  1. 设计模式之- 外观模式(Facade Pattern)
  2. RN 47 中的 JS 线程及 RunLoop
  3. 华为内部面试题库---(6)
  4. mysql中的字段类型
  5. matlab 中括号
  6. python 获取系统相关编码的函数
  7. aac fhg lc哪一个模式_旅游没电别发愁,一个充电头,助你游遍全球
  8. 热像仪 二次开发 c++_重庆多功能红外线热像仪方案
  9. C及opencv指针释放问题
  10. 高斯卷积核如何生成 C语言实现