用Jstack跟踪Cpu占用率的Java线程
来源:互联网 发布:小而美的java开源项目 编辑:程序博客网 时间:2024/05/19 12:26
以下方法在centOS下执行通过:
1.先定位占用cpu高的进程
top
2.使用以下命令
ps p 14766 -L -o pcpu,pid,tid,time,tname,stat,psr | sort -n -k1 -r
其中14766是刚才1中cpu占用率高的进程pid
3.2.4 32525 32537 01:58:41 ? Sl 6
0.8 32525 1771 00:43:12 ? Sl 0
0.8 32525 1769 00:39:46 ? Sl 0
0.7 32525 12324 00:33:36 ? Sl 0
0.5 32525 1772 00:27:50 ? Sl 0
0.5 32525 1768 00:25:45 ? Sl 0
0.4 32525 30760 00:19:13 ? Sl 0
0.4 32525 1773 00:22:36 ? Sl 0
0.4 32525 1770 00:20:25 ? Sl 0
0.3 32525 32385 00:00:10 ? Sl 0
0.1 32525 31668 00:00:03 ? Sl 0
0.1 32525 31667 00:00:03 ? Sl 0
0.1 32525 1790 00:07:10 ? Sl 1
其中第3个结果就是此进程中有问题的线程nid
4.通过jstack命令dump出堆栈
"AppController_ThreadPool_L2_Pool Thread" daemon prio=10 tid=0x0000000051c2b000 nid=0x7bb3 in Object.wait() [0x000000005e3c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.company.threadpool.ThreadPoolImpl$PoolThread.run(ThreadPoolImpl.java:142)
- locked <0x00002aaca30341a8> (a org.company.threadpool.ThreadPoolImpl$PoolThread)
其中的nid就是线程的编码,只不过是经过了16进制的转换。
即十进制的31776对应的十六进制)0x7bb3,定位到线程后一切好办。
- 用Jstack跟踪Cpu占用率的Java线程
- 用JStack和Top分析Java进程CPU占用率
- 用JStack和Top分析Java进程CPU占用率
- 用JStack和Top分析Java进程CPU占用率
- 使用jstack查看最耗CPU的java的线程
- 如何定位cpu占用率高的java线程
- JAVA线程CPU占用率过高分析方法
- 如何获取指定线程的CPU占用率
- 查看linux线程的CPU占用率
- java获取JVM的CPU占用率、内存占用率、线程数及服务器的网口吞吐率、磁盘读写速率
- JAVA 进程异常高的 CPU 占用率
- java控制多核cpu的占用率
- 利用jstack命令定位占用cpu高的java线程及具体错误代码信息
- java程序cpu占用率高,分析具体线程
- Linux 计算线程CPU占用率
- Linux HotSopt虚拟机GC线程的CPU占用率
- Linux HotSopt虚拟机GC线程的CPU占用率
- TOP CPU占用率原理及与实时线程的冲突
- 开源中国iOS客户端学习——(八)网络通信AFNetworking类库
- oracle中plsql developer工具的commandwindow 和 sqlwindow有什么区别啊
- AndroidUI效果--开源项目IndexableListView(字母索引)
- jsp页面errorPage设定,没有跳转,出现500错误
- 2、数据转换String相关
- 用Jstack跟踪Cpu占用率的Java线程
- Objective-C语法入门
- 推荐体系之协同过滤概述
- oracle的sql汇总,性能,sql执行顺序
- 如何有效提升业务员管理效率?
- socket监控进程,并对程序执行有关操作。
- MySQL内核月报 2015.01
- 网址收藏
- 网站测试中的AB测试(A/B Test)方法