2019独角兽企业重金招聘Python工程师标准>>>

上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 
(1)使用top命令找出占用cpu最高的JAVA进程PID:28174

(2)如下命令找出占用cpu最高的线程

Java代码  
  1. top -Hp 28174 -d 1 -n 1
  2. 32694 root      20   0 3249m 2.0g  11m S    2  6.4   3:31.12 java
  3. 28175 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.06 java
  4. 28176 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.79 java
  5. 28177 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.12 java
  6. 28178 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.11 java
  7. 28179 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.33 java
  8. 28180 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.58 java
  9. 28181 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.36 java
  10. 28182 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.02 java
  11. 28183 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.96 java
  12. 28184 root      20   0 3249m 2.0g  11m S    0  6.4   4:38.30 java
  13. 28185 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.46 java
  14. 28186 root      20   0 3249m 2.0g  11m S    0  6.4   0:01.83 java
  15. 28187 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.00 java
  16. 28189 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.01 java
  17. 28190 root      20   0 3249m 2.0g  11m S    0  6.4   0:49.01 java

(3)打印占CPU最高JAVA进程28174的堆栈信息

Java代码  
  1. /usr/java/jdk1.6.0_21/bin/jstack 28174 > /root/mss/41-100javathreaddump.txt

(4)占CPU最高线程32694换算成16进制到文档中寻找对应线程 7fb6

Java代码  
  1. "MSXMLProcessorThread" prio=10 tid=0x00002b469923a800 [color=darkred]nid=0x7fb6[/color] sleeping[0x00002b46b0200000]
  2. java.lang.Thread.State: TIMED_WAITING (sleeping)
  3. at java.lang.Thread.sleep(Native Method)
  4. at com.adventnet.management.xml.MSXmlProcessor.listen(MSXmlProcessor.java:279)
  5. at com.adventnet.management.xml.MSXmlProcessor.run(MSXmlProcessor.java:264)
  6. at java.lang.Thread.run(Thread.java:619)

以上过程手工进行,虽然不如Jprofiler和java自带的可视化工具那么直观,但是能够解决问题!尤其是在不能使用远程调试工具的时候,能够提供最大的帮助。

转载于:https://my.oschina.net/henrydong/blog/164532

Linux下JAVA线程占用CPU高的分析方法相关推荐

  1. Linux下排查进程占用cpu高的问题

    相信很多C++程序员都经历程序占用cpu过高的问题,这种问题,如果对代码运行逻辑足够熟悉,只靠脑子想估计定位起来也不难,但是如果是调用第三方sdk,或者团队其他人开发的库导致的cpu占用居高,就不那么 ...

  2. linux下java进程占用高问题分析过程

    2019独角兽企业重金招聘Python工程师标准>>> 1.用top命令找出占用cpu高的进程,记录下pid 2.用top -H -p pid(上面的pid)查看该进和下各线程占用c ...

  3. Win10 NVIDIA Container占用CPU高的处理方法

    打开任务管理器,发现 NVIDIA Container 占用CPU非常高(36.6%). 2 Windows 10系统 NVIDIA Container占用CPU高的处理方法 在任务管理器窗口中,先展 ...

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

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

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

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

  6. Java进程占用CPU资源过多分析

    问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析: 1,程序属于CPU密集型,和开发沟通 ...

  7. java.exe占用cpu高_Java进程cpu占用过高问题解决

    cpu是时分(time division)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是一个很短的时间长度,如果在时间片内,线程一直占有,则是100 ...

  8. Java内存占用过高问题分析

    这里我们创建一个springboot项目, 然后随便写一个contoller, 在这个controller中定义一个List集合, 然后再初始化的时候让集合中10万个字符串, 然后部署并启动项目(这里 ...

  9. android systemserver 占用cpu 高,关于system/bin/mediaserver占用CPU高的 解决方法

    啰嗦一堆 最近接触到相机功能,需要拿到相机的预览数据做后续处理,刚开始使用没发现什么大问题,后来才发现midiaserver居然占了我25%的CPU,这还得了,于是赶紧百度...卧槽,,,,没有,谷歌 ...

最新文章

  1. ios键盘done中文_关于IOS键盘的一些调用心得与坑
  2. PyTorch笔记: GPU上训练的模型加载到CPU/错误处理Attempting to deserialize object on a CUDA device but torch.cuda.is_a
  3. 成功解决ModuleNotFoundError: No module named 'torch.utils.tensorboard'
  4. Extjs 更换主题(转载)
  5. main函数的参数argc和argv
  6. 高仿真的类-页面交互
  7. SVM实战:如何进行乳腺癌检测
  8. 代码的坏味道之一——译自《重构》
  9. [2013.9.30]c#取三种时间
  10. Java面向对象--instanceof关键字
  11. [Vue] : vue-resource 实现 get, post, jsonp请求
  12. 沙巴克服务器占用,传奇私服服务端里最完整的攻沙传送教程,直接飞皇宫和影之道方法...
  13. buildroot patch 补丁文件使用方法
  14. 微信小程序 tab点击切换(不滑动)
  15. 领猫SCM完成近亿元A轮融资,服装供应链SaaS赛道前景几何?
  16. 苹果cms插件_苹果cms v10 站群插件修复版
  17. QLabel setText 标红 加粗
  18. c语言用星号输出大写字母H,如何在C语言中用星号或自定义字符打印方形图案
  19. HTML网页设计: 一 HTML的基本结构
  20. chrome浏览器 快捷键设置

热门文章

  1. 即使对象属性显示在控制台日志中,也无法访问
  2. JSF,Servlet和JSP有什么区别?
  3. Gradle中的实现和编译之间有什么区别?
  4. Win11推送如何操作 Windows11推送的详细步骤方法
  5. Java代码TkMyBatis通用Mapper中新增数据时同时获取自增主键ID,与适用uuid 做主键时获取 id
  6. python 分布式存储_Amazon S3 分布式存储的 python 接口实现
  7. python服务端编程_Python实现的简单文件传输服务器和客户端
  8. Git:切换分支时,无法切换到分支
  9. (转)MTK_面试的几个主要问题 必看
  10. itextpdf添加表格元素_基操勿6第四期:PPT表格美化