发现cms项目的33959进程一直创建大量的线程 通过MAT分析存在大量的Curator-PathChildrenCache-9211线程 通过jstack命令打印线程栈信息如下: 至此问题基本有眉目了,可以判断是zk的监听线程在后台定时任务失败的时候,会无限创建cms进程的子线程 ...
分类:
编程语言 时间:
2017-08-10 17:03:00
阅读次数:
352
执行btrace命令报错:Unable to open socket file: target process not responding or HotSpot VM not loaded -bash-4.1# /apps/svr/jdk7/bin/jstack/jps -l32382 sun.t ...
分类:
其他好文 时间:
2017-08-06 17:07:15
阅读次数:
296
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问 ...
分类:
Web程序 时间:
2017-08-05 09:52:04
阅读次数:
299
一、抓取1.ps–ef|grepjava2.jstack-l<pid>>111.txt二、分析jstackDump日志文件中的线程状态dump文件里,值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable等待资源,Waitingoncondition(重点关注)等待获取监视器,Waitingonmonitorentry(重点关?.
分类:
其他好文 时间:
2017-07-31 22:03:36
阅读次数:
141
刚才在看CSDN的问答时。发现这个问题。原问题的作者是在观察jstack的输出时提出的疑问。那么BLOCKED和WAITING有什么差别呢? 答复在JDK源代码中能够找到,例如以下是java.lang.Thread.State类的一部分凝视。 /** * Thread state for a thr ...
分类:
编程语言 时间:
2017-07-25 10:33:52
阅读次数:
776
一、jstack使用总结 分析java进程,cpu占用高的问题 { 1、找到cpu占用高的进程pid 在top中,按组合键: shift + h ,会按cpu使用从高到低排序2、找到cpu占用高的线程pid top -Hp cpu高的进程pid, shift +h 查找最高线程,显示线程3、jsta ...
分类:
编程语言 时间:
2017-07-25 00:51:31
阅读次数:
203
1、先通过top命令找到消耗cpu很高的进程id假设是11876 2、执行top -p 11876单独监控该进程 3、在第2步的监控界面输入H,获取当前进程下的所有线程信息 4、找到消耗cpu特别高的线程编号,假设是11354 5、执行jstack 11876对当前的进程做dump,输出所有的线程信 ...
分类:
系统相关 时间:
2017-07-24 18:58:47
阅读次数:
273
1. 找出 java进程pid,比如 11327 2. 使用jstack 看下 锁持有情况 /usr/java/latest/bin/jstack -l 11327 3. 输出java堆栈信息,以及c/c++堆栈信息 /usr/java/latest/bin/jstack -m 11327 4. 找 ...
分类:
编程语言 时间:
2017-07-19 14:47:33
阅读次数:
154
jstack还可以生成线程快照 如何使用jstack: 1.打开命令行,输入jstack 在任务管理器中就可看到对应进程id 2.在命令行中输入 jstack -l 进程id 这样就可得到进程中所有的线程 ...
分类:
Web程序 时间:
2017-07-09 23:16:22
阅读次数:
263
1. 什么是Java线程转储(Thread Dump),如何得到它? 线程转储是一个JVM活动线程的列表,它对于分析系统瓶颈和死锁非常有用。有很多方法可以获取线程转储——使用Profiler,Kill -3命令,jstack工具等等。我更喜欢jstack工具,因为它容易使用并且是JDK自带的。由于它 ...
分类:
编程语言 时间:
2017-06-30 01:04:15
阅读次数:
274