Linux下java线程分析?修改

Linux下java线程分析? 修改

在生产环境(Linux)有什么办法知道当前某个线程的运行情况,比如是不是挂住了,是不是吃了好多cpu和内存。谢谢 修改
 

李力JAVA开发

 
个人觉得:在不添加代码的情况下,一个简单的做法就是打开JVM的堆存储快照,看看应用创建有哪些线程,那些地方占用了内存等等信息...
2012-05-15 · 添加评论      

jiacheo曾经是淘宝Java攻城师,创业中...

以下是针对tomcat上的应用的. 其他的java程序, 只要你能触发他的thread dump并且拿到结果, 也是一样.
1. ps -ef | grep java
找到你的java程序的进程id, 定位 pid
2. top -Hp $pid
shift+t 
查看耗cpu时间最多的几个线程, 记录下线程的id
3. 把上诉线程ID转换成16禁止小写  比如  : 0x12ef
4. kill -3 $pid  触发tomcat的thread dump
5. 找到tomcat的catalin.out 日志, 把 上面几个线程对应的代码段拿出来.
DONE.
jiacheo.org/blog...
2012-05-15 · 添加评论      

冯雪峰攻城师一枚,会点python,偶尔弄弄数据

可以使用jdk自带的jstack,分析进程的堆栈信息。分析之前需要找到哪个进程、哪个线程消耗的资源比较高,使用top命令就能做到。
我之前写过这方面的简单使用,可参考flysnowxf.iteye.com/blog...
原文地址:https://www.cnblogs.com/lexus/p/2503641.html