`

查看java堆栈情况(cpu占用过高)

    博客分类:
  • java
 
阅读更多
1. 确定占用cpu高的线程id:

方法一: 直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 获取对于的进程号和线程号,然后跳转到2.
方法二: . 查看哪个进程线程占用cpu过高; top / ps -aux, 获得进程号
. 确定哪个线程占用cpu过高,进入进程号的目录:/proc/pid/task,
执行:grep SleepAVG  **/status  | sort -k2,2 | head,  确定cpu占用较高的线程号。



2.使用:jstack pid, 或者kill -3 pid 会打印线程堆栈的情况。 jstack输出到当前命令的标准输出,kill -3 输出到当前进程jvm的标准输出。根据第二步中获取的线程号,查询堆栈中正在执行的代码。
分享到:
评论

相关推荐

    用jstack分析CPU占用率高的原因.zip

    用jstack分析CPU占用率高的原因 1 top -H -p pid 2 linux printf命令将10进制转换为16进制 3在jstack中找到相应的堆栈信息jstack pid grep 'nid' -C5 –color

    一个正则表达式导致CPU 利用率居高不下

    前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 藏在正则表达式里的陷阱,一个正则...

    Java Cpu 无响应解决方案

    占用cpu高的线程的堆栈如下: Thread 1 (process 17775): #0 0x00007fa870981179 in Klass::subklass() const () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so #1 0x00007fa8706d15c5 in ...

    Linux shell脚本实现CPU预警

    如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的脚本,见https://github.com/oldratlee/useful-shells/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki! #!/bin/bash #cpu idle ...

    java动态日志注入工具anylog.zip

     如果需要扩展新的功能(例如输出jvm的cpu占用,内存大小等),只需要实现spi中的  com.github.jobop.anylog.spi.TransformDescriptor   和com.github.jobop.anylog.spi.TransformHandler接口,  然后把实现的...

    jstack生成的Thread Dump日志.docx

    (1)如果堆栈信息明确是应用代码,则证明该线程正在等待资源,一般是大量读取某种资源且该资源采用了资源锁的情况下,线程进入等待状态,等待资源的读取,或者正在等待其他线程的执行等。 (2)如果发现有大量的...

    resin-jvm 调优

    在多cpu机器上使用多线程技术可以显著的提高java应用程序的可扩展性。 3.Sun HotSpot 1.4.1 JVM堆大小的调整 Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新...

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

    Toad 使用快速入门

    可以查看SQL语句的执行情况:通过下方的AutoTrace窗口 ,看到SQL语句的实际执行结果和执行效率。 支持历史SQL(F8) :可以方便的查询以前执行过的SQL,不用反复重新输入。  可以执行匿名块,存储过程,从...

Global site tag (gtag.js) - Google Analytics