目前我们的监控,可以发现消耗较高CPU的进程(阀值为3个CPU),通过监控我们可以找到消耗较高CPU的进程号;

通过进程号pid,我们在linux上可以通过top –H –p <pid>命令,显示该进程中每个线程的CPU资源消耗情况。

然后通过threadump命令,可以打印出某个应用JVM中某时刻所有线程的调用情况,通过线程号我们就可以对应找到线程调用的程序了。

另:

使用jrcmd命令也可以进行threadump和进程执行线程情况的查看,但该命令为jrockit 5.0 新带的命令,在wls81用户下,我们没有执行权限,但可以联系中间件帮忙执行。

1. 进入到jrockit/bin目录下
2. 打./jrcmd 回车,会看到当前所有在执行中的java进程的PID号
3. 打./jrcmd [PID] help 回车,会看到指定java进程支持的操作
4. 打./jrcmd [PID] print_threads > xxxFile,可以把当前java进程中的所有线程堆栈轨迹打印到指定文件中

示例:

[serviceop@CNSZ031330 wls]$ top

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+ 
COMMAND

228961 wls81     15   0  714m 637m 1804 S 755.7  0.2 383:24.53 java

[serviceop@CNSZ031330 wls]$ top -H -p 228961

top - 13:37:01 up 156 days, 16:11,  8 users,  load average: 14.24, 13.82, 12.88

Tasks: 140 total,  23 running, 117 sleeping,   0 stopped,   0 zombie

Cpu(s): 25.6%us,  1.6%sy,  0.0%ni, 72.6%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st

Mem:  264120292k total, 217896772k used, 46223520k free,  4547804k buffers

Swap:  3145720k total,      464k used,  3145256k free, 153619224k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+ 
COMMAND

229077
wls81     15   0  714m 637m 1804 R 32.6  0.2   7:11.79
ExecuteThread:

229093
wls81     15   0  714m 637m 1804 R 32.6  0.2  23:41.47
ExecuteThread:

229073
wls81     15   0  714m 637m 1804 R 32.2  0.2   2:24.30
ExecuteThread:

229076
wls81     15   0  714m 637m 1804 R 32.2  0.2   2:22.75
ExecuteThread:

229078
wls81     15   0  714m 637m 1804 R 32.2  0.2   7:21.38
ExecuteThread:

229082
wls81     15   0  714m 637m 1804 R 32.2  0.2  10:14.74
ExecuteThread:

229084
wls81     15   0  714m 637m 1804 R 32.2  0.2   8:43.72
ExecuteThread:

229085
wls81     15   0  714m 637m 1804 R 32.2  0.2  12:45.62
ExecuteThread:

229087
wls81     15   0  714m 637m 1804 R 32.2  0.2  19:11.79
ExecuteThread:

229089
wls81     15   0  714m 637m 1804 R 32.2  0.2  23:22.67
ExecuteThread:

229075
wls81     15   0  714m 637m 1804 R 31.9  0.2   5:06.52 ExecuteThread:

229088
wls81     15   0  714m 637m 1804 R 31.9  0.2  13:19.55
ExecuteThread:

229090
wls81     15   0  714m 637m 1804 R 31.9  0.2  23:53.55
ExecuteThread:

229092
wls81     15   0  714m 637m 1804 R 31.9  0.2  24:20.10
ExecuteThread:

229094
wls81     15   0  714m 637m 1804 R 31.9  0.2  33:25.41
ExecuteThread:

229095
wls81     15   0  714m 637m 1804 R 31.9  0.2  33:41.20
ExecuteThread:

229096
wls81     15   0  714m 637m 1804 R 31.9  0.2  36:22.72
ExecuteThread:

229081
wls81     15   0  714m 637m 1804 R 31.6  0.2   7:28.80
ExecuteThread:

229083
wls81     15   0  714m 637m 1804 R 31.6  0.2  11:05.48
ExecuteThread:

229086
wls81     15   0  714m 637m 1804 R 31.6  0.2  11:40.36
ExecuteThread:

229091
wls81     15   0  714m 637m 1804 R 31.6  0.2  17:53.92
ExecuteThread:

229097
wls81     15   0  714m 637m 1804 R 31.6  0.2  32:41.28
ExecuteThread:

229079 wls81     15   0  714m 637m 1804 R 31.2  0.2   7:33.44 ExecuteThread:

229080
wls81     15   0  714m 637m 1804 S  1.3  0.2   0:14.13
ExecuteThread:

228963
wls81     15   0  714m 637m 1804 S  0.7  0.2   0:13.44 (GC Main
Thread

229070
wls81     15   0  714m 637m 1804 S  0.7  0.2   0:05.97
ExecuteThread:

229664 wls81     15   0  714m 637m 1804 S  0.7  0.2   0:08.69 pool-1-thread-7

Threadump信息片段:

229083:

"ExecuteThread: '35' for queue: 'weblogic.kernel.Default'" id=44 idx=0xd4 tid=229083 prio=5 alive, daemon

at java/util/HashMap.get(HashMap.java:319)

at com/paic/abbs/biz/service/common/impl/HardCodeServiceImpl.getString(HardCodeServiceImpl.java:115)

at com/paic/abbs/biz/service/util/impl/UtilServicesImpl.isExpected(UtilServicesImpl.java:45)

at com/paic/abbs/biz/service/common/impl/AbbsInternetServiceImpl.policyIssuing(AbbsInternetServiceImpl.java:3156)

at com/paic/abbs/biz/service/common/impl/AbbsInternetServiceImpl.procRequest(AbbsInternetServiceImpl.java:218)

at com/paic/abbs/biz/service/common/impl/AbbsInternetServiceImpl.handleRequest(AbbsInternetServiceImpl.java:122)

at
com/paic/abbs/biz/service/common/impl/AbbsInternetService_gwxgqo_EOImpl.handleRequest(AbbsInternetService_gwxgqo_EOImpl.java:262)

at sun/reflect/GeneratedMethodAccessor287.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)

at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodA

linux查看某个进程CPU消耗较高的具体线程或程序的方法的更多相关文章

  1. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  2. (转)Linux下java进程CPU占用率高-分析方法

    Linux下java进程CPU占用率高-分析方法 原文:http://itindex.net/detail/47420-linux-java-%E8%BF%9B%E7%A8%8B?utm_source ...

  3. Linux下java进程CPU占用率高分析方法(一)

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  4. Linux下java进程CPU占用率高-分析方法

    今天登陆同事的一台gateway 开始以为hive环境登陆不了了,仔细一看看了下是因为机器很卡,我每次等几秒没登陆就ctrl+c了,看了下是有个java进程cpu:340.4%  mem:14.6%  ...

  5. Linux下java进程CPU占用率高分析方法(二)

    1. 通过 top 命令查看当前系统CPU使用情况,定位CPU使用率超过100%的进程ID:2. 通过 ps aux | grep PID 命令进一步确定具体的线程信息:3. 通过 ps -mp pi ...

  6. Linux下分析某个进程CPU占用率高的原因

      Linux下分析某个进程CPU占用率高的原因 通过top命令找出消耗资源高的线程id,利用strace命令查看该线程所有系统调用  1.top 查到占用cpu高的进程pid 2.查看该pid的线程 ...

  7. linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定

    背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况.一. linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER  ...

  8. Linux下查看内核、CPU、内存及各组件版本的命令和方法

    Linux下查看内核.CPU.内存及各组件版本的命令和方法 Linux查看内核版本: uname -a                        more /etc/*release       ...

  9. linux下进程cpu占用过高问题定位方法

    背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高 ...

随机推荐

  1. 基于visual Studio2013解决C语言竞赛题之1093连接链表

        题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <math.h> #i ...

  2. 与众不同 windows phone (7) - Local Database(本地数据库)

    原文:与众不同 windows phone (7) - Local Database(本地数据库) [索引页][源码下载] 与众不同 windows phone (7) - Local Databas ...

  3. 关于IOCP,某些地方就是不让人彻底舒服(WSASend重叠post数据)

    开门见山,直接就事论事. 假如有这么一个基于IOCP模型的Server,这个Server提供的所有服务中有这么一种服务……文件下载,我们再假设Server端存有一个20G的文件,客户端这时发送一个请求 ...

  4. OpenCV五学习: 如何使用命令来启动或关闭OpenCV的CPU指令系统CV_SSE2,CV_SSSE4和其他优化

    在这个博客.我想分享一下OpenCV源代码CPU指令系统CV_SSE2和其他相关知识 一个.    CV_SSE系列指令集的预编译符号定义在opencv2/core/internal.hpp这个头文件 ...

  5. uva 10581 - Partitioning for fun and profit(记忆化搜索+数论)

    题目链接:uva 10581 - Partitioning for fun and profit 题目大意:给定m,n,k,将m分解成n份,然后依照每份的个数排定字典序,而且划分时要求ai−1≤ai, ...

  6. 02将代码开源到github(不会使用github的来看看吧)

    github不多说了,新建一个repository.如图: 这个创建好了之后,我们在eclipse中新建项目WeatherPro,安装githubclient. 安装好了之后,打开git bash,进 ...

  7. 玩转Windows服务系列——命令行管理Windows服务

    原文:玩转Windows服务系列——命令行管理Windows服务 说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令, ...

  8. 14.3.3 Locks Set by Different SQL Statements in InnoDB 不同的SQL语句在InnoDB里的锁设置

    14.3.3 Locks Set by Different SQL Statements in InnoDB 不同的SQL语句在InnoDB里的锁设置 locking read, 一个UPDATE,或 ...

  9. cocos2d-x开关按钮类CCControlSwitch

    在test项目中的ControlExtensionText\ CCControlSwitchTest目录下面的CCControlSwitchTest.cpp中,通过这个例子,我们也可以制作出不错的开关 ...

  10. ORACLE:plsql优化

      1.登录后默认自动选中My Objects? 设置方法:Tools菜单--Brower Filters会打开Brower Filters的定单窗口,把“My Objects”设为默认即可.? 同理 ...