查看进程的线程资源使用情况:15047为进程PID
ps -Lp 15047 cu
top -H -p 15047
1. 首先排查哪些进程cpu占用率高。 通过命令 ps ux
[]
$ps ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
admin 1502 0.0 0.0 51172 1032 ? S 11:04 0:00 sshd: admin@pts/1
admin 1503 0.0 0.0 68136 1512 pts/1 Ss 11:04 0:00 -bash
admin 1555 0.0 0.0 96640 3356 pts/1 S+ 11:04 0:00 vim jstack15047.12.2
admin 1993 0.0 0.0 51172 1032 ? S 11:06 0:00 sshd: admin@pts/2
admin 1994 0.0 0.0 68136 1492 pts/2 Ss 11:06 0:00 -bash
admin 2038 0.0 0.0 65576 912 pts/2 R+ 11:06 0:00 ps ux
admin 10191 0.2 0.4 670904 23880 ? Sl 09:31 0:13 /usr/alibaba/httpd/bin/httpd -d /home/admin/run/deploy
admin 10756 0.2 0.4 670476 23092 ? Sl 09:32 0:12 /usr/alibaba/httpd/bin/httpd -d /home/admin/run/deploy
admin 14467 0.2 0.4 671700 24436 ? Sl 09:47 0:10 /usr/alibaba/httpd/bin/httpd -d /home/admin/run/deploy
admin 15037 0.0 0.0 65908 1168 ? S Nov30 0:00 /bin/sh
/usr/alibaba/jboss/bin/run.sh
-Djboss.server.home.dir=/home/admin/run/deploy/../.myjboss
-Djboss.server.home.url=file:/home/admi
admin 15047 25.4 42.9 2915448 2252040 ? Sl
Nov30 312:31 /usr/alibaba/java/bin/java -Dprogram.name=run.sh -server
-Xmx2g -Xms2g -Xmn256m -XX:PermSize=196m -Xss256k -XX:+DisableExplicitGC
-XX:+U
admin 15834 0.0 0.0 3840 472 ? S Nov30 0:00
/usr/alibaba/cronolog/sbin/cronolog
/home/admin/out/logs/443-error_log.%w
admin 15835 0.0 0.0 3840 480 ? S Nov30 0:00
/usr/alibaba/cronolog/sbin/cronolog
/home/admin/out/logs/cookie_logs/%w/cookie_log
admin 15836 0.0 0.0 58900 612 ? S Nov30 0:00 /usr/bin/logger -p local2.info
admin 15837 0.0 0.0 3840 476 ? S Nov30 0:07
/usr/alibaba/cronolog/sbin/cronolog
/home/admin/out/logs/jk_logs/%w/mod_jk.log
admin 16316 0.2 0.4 669448 21740 ? Sl 09:53 0:10 /usr/alibaba/httpd/bin/httpd -d /home/admin/run/deploy
admin 27702 0.0 0.0 51320 1060 ? S 10:39 0:00 sshd: admin@pts/0
admin 27703 0.0 0.0 68136 1524 pts/0 Ss+ 10:39 0:00 -bash
2. 查看对应java进程的每个线程的CPU占用率。通过命令:ps -Lp 15047 cu
[admin@us-escrow-web4.hst.scl.en.alidc.net ~]
$ps -Lp 15047 cu
USER PID LWP %CPU NLWP %MEM VSZ RSS TTY STAT START TIME COMMAND
。。。。。。
admin 15047 25491 70.8 285 42.9 2915448 2252032 ? Rl 10:29 22:35 java
admin 15047 25495 71.0 285 42.9 2915448 2252032 ? Rl 10:29 22:34 java
admin 15047 25499 0.0 285 42.9 2915448 2252032 ? Sl 10:29 0:00 java
admin 15047 25500 0.0 285 42.9 2915448 2252032 ? Sl 10:29 0:00 java
admin 15047 25517 0.0 285 42.9 2915448 2252032 ? Sl 10:30 0:00 java
admin 15047 25521 0.0 285 42.9 2915448 2252032 ? Sl 10:30 0:00 java
admin 15047 25540 72.4 285 42.9 2915448 2252032 ? Rl 10:30 22:31 java
admin 15047 25541 0.0 285 42.9 2915448 2252032 ? Sl 10:30 0:00 java
admin 15047 25542 0.0 285 42.9 2915448 2252032 ? Sl 10:30 0:00 java
admin 15047 25741 70.7 285 42.9 2915448 2252032 ? Rl 10:31 21:33 java
admin 15047 25766 0.0 285 42.9 2915448 2252032 ? Sl 10:31 0:00 java
admin 15047 26022 0.0 285 42.9 2915448 2252032 ? Sl 10:31 0:00 java
admin 15047 26032 69.6 285 42.9 2915448 2252032 ? Rl 10:32 20:38 java
3. 追踪线程内部,查看load过高原因。通过命令:jstack 15047。
以线程25495为例,现将25495转换成16进制6397。 再通过多次监控jstack日志,排查线程25495的运行轨迹。
"ActiveMQ Session Task" prio=10 tid=0x000000004a598000 nid=0x6397
runnable [0x0000000044948000]
java.lang.Thread.State: RUNNABLE
at Ice.ConnectionI.sendRequest(ConnectionI.java:519)
- locked <0x00002aaac2877ff8> (a Ice.ConnectionI)
at IceInternal.Outgoing.invoke(Outgoing.java:72)
at AliIMInterface._WWMessageInterfaceDelM.SendNotifyMessage(_WWMessageInterfaceDelM.java:36)
at AliIMInterface.WWMessageInterfacePrxHelper.SendNotifyMessage(WWMessageInterfacePrxHelper.java:40)
at AliIMInterface.WWMessageInterfacePrxHelper.SendNotifyMessage(WWMessageInterfacePrxHelper.java:18)
"ActiveMQ Session Task" prio=10 tid=0x000000004a598000 nid=0x6397
runnable [0x0000000044948000]
java.lang.Thread.State: RUNNABLE
at IceInternal.Outgoing.invoke(Outgoing.java:72)
at AliIMInterface._WWMessageInterfaceDelM.SendNotifyMessage(_WWMessageInterfaceDelM.java:36)
at AliIMInterface.WWMessageInterfacePrxHelper.SendNotifyMessage(WWMessageInterfacePrxHelper.java:40)
at AliIMInterface.WWMessageInterfacePrxHelper.SendNotifyMessage(WWMessageInterfacePrxHelper.java:18)
"ActiveMQ Session Task" prio=10 tid=0x000000004a598000 nid=0x6397
runnable [0x0000000044947000]
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
- locked <0x00002aaab53435e8> (a IceInternal.LocalExceptionWrapper)
at java.lang.Throwable.<init>(Throwable.java:181)
at java.lang.Exception.<init>(Exception.java:29)
at IceInternal.LocalExceptionWrapper.<init>(LocalExceptionWrapper.java:16)
at Ice.ConnectionI.sendRequest(ConnectionI.java:530)
- locked <0x00002aaac2877ff8> (a Ice.ConnectionI)
at IceInternal.Outgoing.invoke(Outgoing.java:72)
4. 通过jstack查看代码运行轨迹,结合已有源码,一般可以分析出死循环的地方。
分享到:
相关推荐
Flink和Iceberg如何解决数据入湖相关问题分析,flink iceberg
教程包括: 第一部分 Ice综述 第二部分 核心概念 第三部分 高级Ice 第四部分 Ice服务 附录ice各种配置说明
ICE学习资料ICE学习资料ICE学习资料ICE学习资料ICE学习资料ICE学习资料ICE学习资料ICE学习资料ICE学习资料
然而想要解决这样的错误,一般只需要把在无法编译成.o文件的.cpp文件中和ice文件相关的头文件放在该.cpp文件的起始行即可。也就是说,根据提示,把.cpp文件中最早提示导致出错的.h文件放在起始行。 ICE的常见...
matlab ice.fig 函数源代码
里面有关于ice的教程以及ice中文版的手册,对ice的安装运行等都有很大的帮助,费尽了千辛万苦找来的资料。
《ZeroC Ice权威指南》从浅到深、从原理到背后地进行源码分析,从讲解Demo到解决实际项目开发中的具体技术问题,带领读者一路探究Ice那些不为人知的奥秘,扫清Ice用于企业系统开发的技术困难;并带领读者从零开始...
冈萨雷斯数字图像处理matlab版源码ice源码
ICE最新版官方的学些资料,因为中文基本没有,一起啃吧
ice3.7ICE-SIP穿透NAT防火墙问题的终极解决方案,详细介绍了ice如何在sip上工作ICE-SIP穿透NAT防火墙问题的终极解决方案,详细介绍了ice如何在sip上工作
ICE-SIP穿透NAT防火墙问题的终极解决方案,详细介绍了ice如何在sip上工作
ice demo是很好的学习ice的东西,ice是一个很好的分布式的网络通讯中间件,很好的支持跨平台等各种功能。 ice demo是很好的学习ice的东西,ice是一个很好的分布式的网络通讯中间件,很好的支持跨平台等各种功能。 ...
Ice通信框架简介;Ice通信框架简介;Ice通信框架简介
Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面 向对象的客户-服务器应用提供了工具、API 和库支持。Ice 应用适合在异 种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不 同...
Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice Ice
ICE(Internet Communications Engine)是ZeroC提 供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础 对象操作和数据库...
ICE开发文档 ICE开发文档 ICE开发文档 ICE开发文档
ice源码(Ice-3.4.1.tar.gz),源码,包括java,c++,perl,直接下载解压即可查看源码内容。可分析实现细节。绝对真实。
Ice Ice-3.7.0 linux windows mac os docker java js python ruby source Download Ice 3.7 Version: 3.7.0 - July 21, 2017 You are licensing Ice under GPLv2 unless you purchase a commercial license.