Tivoli developerWorks

JVM 线程资源消耗

03.04.2010 · Posted in 服务可用性和性能管理

今天和客户交流ITCAMfAD功能时,客户希望对单个JVM中线程资源消耗,包括线程的CPU,内存消耗进行统计。确实这部分信息在ITCAMfAD中不能直接得到,只能得到JVM中线程的列表,和之间从属关系,以及线程优先级等等。

在Windows下有一个很好的工具pslist,需要的可以从这下载:http://technet.microsoft.com/en-us/sysinternals/bb896682.aspx

可以直接获取如下信息:

pslist -d <Java PID>

Tid Pri    Cswtch            State     User Time   Kernel Time   Elapsed Time

2908   8      2025   Wait:Executive  0:00:00.359   0:00:01.312    1:48:08.046

4344  15       157     Wait:UserReq  0:00:00.218   0:00:00.015    1:48:07.921

4836  15    415456     Wait:UserReq  0:00:00.000   0:00:00.000    1:48:07.921

2496   8         1     Wait:UserReq  0:00:00.000   0:00:00.000    1:48:07.796

4648   9         1     Wait:UserReq  0:00:00.000   0:00:00.000    1:48:07.796

3116   9         7     Wait:UserReq  0:00:00.000   0:00:00.000    1:48:07.796

5268   8       189     Wait:UserReq  0:00:00.015   0:00:00.000    1:48:07.796

5220   7   6991523          Running  1:47:42.031   0:00:01.218    1:48:05.593

3932   9         2     Wait:UserReq  0:00:00.000   0:00:00.000    1:48:05.125
但是在UNIX下和Linux则没搜索到这么方便的工具,必须结合IBM Thread and Monitor Dump Analyzer for Java和部分命令来诊断。
AIX下查看线程的命令是:AIX: ps -mp <PID> -o THREAD
Linux查看线程命令是:Linux: ps -Lf <PID>
这里有一篇详细介绍如何通过javacore来真的JVM线程相关问题的帖子:利用 Java dump 进行 JVM 故障诊断
Tags: ,

Leave a Reply