首先获取jvm的进程pid。

[biee02@bjkjy-bi-devbiee01 ~]$ jps -v

26048 Server -Xms256m -Xmx2048m -Dweblogic.Name=bi_server1 -Djava.security.policy=/home/biee02/oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Dweblogic.system.BootIdentityFile=/home/biee02/oracle/Middleware/Oracle_Home/user_projects/domains/bi/servers/bi_server1/data/nodemanager/boot.properties -Dweblogic.nodemanager.ServiceEnabled=true -Dweblo

得到pid为26048

然后使用top命令查看26048中的线程信息

[biee02@bjkjy-bi-devbiee01 ~]$ top -H -p 26048

可以看到线程id为26300的占用了大量的cpu。

将26300转化为16进制

[biee02@bjkjy-bi-devbiee01 ~]$ printf "%x \n" 26300

66bc

获取java虚拟机的Thread dump

[biee02@bjkjy-bi-devbiee01 ~]$ jcmd 26048 Thread.print > threaddump.txt

jcmd在jdk7及以上才可用

注:也可以使用jstack -l 26048 > threaddump.txt

在threaddump.txt中搜索nid=0x66bc,即是id为26300的线程dump信息。如下所示:

"[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" #99 daemon prio=5 os_prio=0 tid=0x00007f65514e4000 nid=0x66bc runnable [0x00007f647eeca000]

java.lang.Thread.State: RUNNABLE

at com.munzandmore.stuckthread.LongRunningEJB.threadCalc(LongRunningEJB.java:40)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)

at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)

a

有了这个信息之后,就可以去查看LongRunningEJB.java第40行的源代码,从而定位问题。

linux杀java线程,如何在Linux下找出大量占用CPU的java线程相关推荐

  1. 【JVM性能调优】使用jstack找出最耗CPU的java线程

    jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体的代码,所以它在JVM性能调优中很常见.下面我们在找出某个java进程中最耗CPU的线程,并定位堆栈信息,使用到的命令有:ps.top.p ...

  2. linux查看图像大小_如何在Linux上调整一批图像的大小?

    linux查看图像大小 Resizing images on Linux with gThumb is easy. However, I have a batch of images inside a ...

  3. 找出占用cpu最高的线程

    ps -eo %cpu,pid |sort -n -k1 -r | head -n 1| awk  '{print $2}'| xargs top  -b -n1 -Hp | grep COMMAND ...

  4. 找出游戏的获胜者(java)

    问题描述:(约瑟夫环) 样例输入: 代码如下:使用链表模拟法 import java.util.Scanner; public class FindTheWinner {//找出游戏的获胜者//1 & ...

  5. jpa,分析duid参数,当前用户的最大线程数,线上问题排查,stack命令查看占用CPU高的线程堆栈信息

    1.先查看应用进程号: ps -ef | grep 应用名 ,也就是 pid 2.查看pid垃圾回收情况: jstat -gc pid 5000(时间间隔) 3.dump jvm二进制的内存详细使用情 ...

  6. disk在linux怎么使用教程,如何在 Linux 系统下使用 PhotoRec TestDisk

    原标题:如何在 Linux 系统下使用 PhotoRec & TestDisk 同学们在日常工作与学习中难免会有错删文件的情况发生,如果这时有一个合适的工具和相关专业知识,就可以从电脑中恢复已 ...

  7. linux卸载欧朋浏览器,如何在Centos下安装opera浏览器

    如何在Centos下安装opera浏览器 ,Opera目前是Linux平台上性能最优的浏览器,而且Opera中国团队本身即定位于Opera的研发中心,主要也是负责全球Linux平台项目的开发,这个版本 ...

  8. linux 线程迁移_迁移线程如何在Linux内核内部工作

    linux 线程迁移 Abstract In computer systems, resources have to be balanced so that the performance will ...

  9. windows和linux通用的压缩,如何在linux下实现Windows中winrar和winzip等压缩软件所提供的打包压缩分割功能?...

    (如何在linux下实现Windows中winrar和winzip等压缩软件所提供的打包压缩分割功能) 将大文件或目录打包.压缩并分割成制定大小的文件,这在将数据备份到容量有限的移动储存设备时是必须的 ...

最新文章

  1. Git 简介1-常用术语
  2. 使用elk+redis搭建nginx日志分析平台(引)
  3. 330+ 个机器学习模型/库探索工具!Papers With Code 重磅推出!
  4. COALESCE()、isnull()、nullif()函数的用法
  5. 关于bootstrap的modal弹出层嵌套子Modal所引发的血案(转)
  6. 瑞典卡罗林斯卡医学院博士后招聘,图像流行病学和深度学习领域
  7. SQL2008-显示表大小行数
  8. 代码格式化工具 Clang-format
  9. (传播智客)刘意Java基础班精华版
  10. win10下SVN图标不显示
  11. 【所见即所得】数据分析最有用的25个 Matplotlib图【附代码】
  12. 可靠性(reliability)弱点度量
  13. Salesforce学习 丨3张图搞懂SFDC认证考试体系及费用,看看30多个证你要怎么考
  14. 电站计算机培训计划,电站年度培训的工作总结范文
  15. 饭店计算机信息管理全章ppt,酒店信息质量管理.ppt
  16. 解决tensorboard无法访问此网站
  17. 【7月cocos学习笔记】
  18. Java笔试面试(社招版)
  19. 【Linux】Linux运维命令汇总单词表
  20. 面对这个缓慢、脆弱、健忘的互联网,IPFS协议势在必行!

热门文章

  1. 学习OpenGL:笔记一
  2. HDU 3555 Bomb
  3. BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】
  4. [恢]hdu 2117
  5. [原创]辽宁移动通信-话费余额查询
  6. Android recovery支持adb shell
  7. Android开发概要记录
  8. 用javah 导出类的头文件, 常见的错误及正确的使用方法
  9. ubuntu10.04开启root登陆
  10. 给技术人上的管理课:平衡和集中