免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13687 | 回复: 9
打印 上一主题 下一主题

Linux环境下,如何快速、准确的查看线程池繁忙状态? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-20 13:19 |只看该作者 |倒序浏览
RT~~

求各位大侠路过指导:)

论坛徽章:
0
2 [报告]
发表于 2012-08-20 14:37 |只看该作者
没人回,我自己回复了 {:2_167:}

1. 查看进程id
jps
ps -ef | grep java
都可以查看

2. 查看进程里具体哪个线程最屌丝
top -H -p yourpid
例如,查看如下,那么13099最屌丝,并转换为十六进制(0x332b,注意小写)
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                             
13098 admin     16   0 2543m 1.4g  21m S  0.0 72.8   0:03.35 java                                                                  
13099 admin     16   0 2543m 1.4g  21m S  0.0 72.8   1:54.93 java                                                                  
13100 admin     16   0 2543m 1.4g  21m S  0.0 72.8   0:00.06 java                                                                  

3.  stack查看线程状态
jstack -l yourpid | less
jstack -l yourpid | grep 0x332b --color=always -A10
其中,各字段的含义,这里有比较ok的介绍:http://www.blogjava.net/jzone/articles/303979.html

4. [备注]thread dump里,有几个ID比较迷惑人,这里注解一下:
1) "tid" is the thread ID the thread have in the JVM (could be a memory address)
2) "nid" is the native thread id (in hex). On some Linux systems this ID maps directly to a process ID (number 13883 (in decimal) in your case).
3) 线程状态的后面,有时候也会多跟一个id,那个是"资源"的id号,在等待对它的获取等。

已经两次了,我自问自答,介个论坛太米有爱了了。。

论坛徽章:
0
3 [报告]
发表于 2012-08-20 18:07 |只看该作者
) 呵呵,以前没用过,这样的问题不要在java板块发,你应该去其他人多的板块

论坛徽章:
0
4 [报告]
发表于 2012-08-20 18:55 |只看该作者
回复 3# dyllove98


    啊?亲爱的,求指导,哪个版块银多捏?

论坛徽章:
0
5 [报告]
发表于 2012-08-20 19:25 |只看该作者
你是想查java虚拟机的还是linux系统的?

论坛徽章:
0
6 [报告]
发表于 2012-08-20 19:31 |只看该作者
这个问题还是适合在Java版发的,top -H是使用Java Thread Dumps调试的第一步,先找到影响性能的Pid,然后输入kill -3 <PID>,就可依据log文件初步定位影响性能的代码段。如果启动了Eclipse,输入kill -3 pid后,Eclipse的console会有显示,更具体的放狗搜一下Java Thread Dumps的内容就知道了。

论坛徽章:
0
7 [报告]
发表于 2012-08-20 20:47 |只看该作者
回复 5# _Rayx


    哈,我是想看具体某个进程的:)求深入指导!拜谢!

论坛徽章:
0
8 [报告]
发表于 2012-08-20 20:50 |只看该作者
回复 6# isaacxu


    嗯,比较讨厌的就是连daemon和JVM自身的一些线程都打出来了,好多,好耀眼~~我在YY,有没有一个工具,可以查看全部线程池的繁忙状态,并且也可以查看线程池内线程们繁忙状态的,如果有这样的工具,那碉堡了!

论坛徽章:
0
9 [报告]
发表于 2012-08-28 21:42 |只看该作者
楼主你太好了.........

论坛徽章:
0
10 [报告]
发表于 2012-08-30 14:41 |只看该作者
多dump几次,比较下看那个thread一直在运行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP