如何查询进程的线程中占用CPU的线程

如何查看进程中各线程的内存占用情况_百度知道
如何查看进程中各线程的内存占用情况
我有更好的答案
然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 获取对于的进程号和线程号,然后跳转到3;pid&#47:ps H -task, 执行:grep SleepAVG
| sort -k2,%cpu,cmd --sort=%cpu这个命令首先指定参数'H',ppid,tid,time,tid,time,%cpu:/proc&#47,显示线程相关的信息,pid, ps -aux, 获得进程号确定哪个线程占用cpu过高,进入进程号的目录; top &#47,格式输出中包含.查看哪个进程线程占用cpu过高:user,pid,ppid可以用下面的命令将 cpu 占用率高的线程找出来
有实力 无所惧
主营:互联网安全 电脑加速 电脑漏洞修复 电脑杀毒 电脑办公
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
目前我们的监控,可以发现消耗较高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
SHR S %CPU %MEM
228961 wls81
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,
load average: 14.24, 13.82, 12.88
Tasks: 140 total,
23 running, 117 sleeping,
0 stopped,
Cpu(s): 25.6%us,
0.0%ni, 72.6%id,
k total, k used, k free,
4547804k buffers
3145720k total,
464k used,
3145256k free, k cached
SHR S %CPU %MEM
229077 wls81
714m 637m 1804 R 32.6
7:11.79 ExecuteThread:
229093 wls81
714m 637m 1804 R 32.6
23:41.47 ExecuteThread:
229073 wls81
714m 637m 1804 R 32.2
2:24.30 ExecuteThread:
229076 wls81
714m 637m 1804 R 32.2
2:22.75 ExecuteThread:
229078 wls81
714m 637m 1804 R 32.2
7:21.38 ExecuteThread:
229082 wls81
714m 637m 1804 R 32.2
10:14.74 ExecuteThread:
229084 wls81
714m 637m 1804 R 32.2
8:43.72 ExecuteThread:
229085 wls81
714m 637m 1804 R 32.2
12:45.62 ExecuteThread:
229087 wls81
714m 637m 1804 R 32.2
19:11.79 ExecuteThread:
229089 wls81
714m 637m 1804 R 32.2
23:22.67 ExecuteThread:
229075 wls81
714m 637m 1804 R 31.9
5:06.52 ExecuteThread:
229088 wls81
714m 637m 1804 R 31.9
13:19.55 ExecuteThread:
229090 wls81
714m 637m 1804 R 31.9
23:53.55 ExecuteThread:
229092 wls81
714m 637m 1804 R 31.9
24:20.10 ExecuteThread:
229094 wls81
714m 637m 1804 R 31.9
33:25.41 ExecuteThread:
229095 wls81
714m 637m 1804 R 31.9
33:41.20 ExecuteThread:
229096 wls81
714m 637m 1804 R 31.9
36:22.72 ExecuteThread:
229081 wls81
714m 637m 1804 R 31.6
7:28.80 ExecuteThread:
229083 wls81
714m 637m 1804 R 31.6
11:05.48 ExecuteThread:
229086 wls81
714m 637m 1804 R 31.6
11:40.36 ExecuteThread:
229091 wls81
714m 637m 1804 R 31.6
17:53.92 ExecuteThread:
229097 wls81
714m 637m 1804 R 31.6
32:41.28 ExecuteThread:
229079 wls81
714m 637m 1804 R 31.2
7:33.44 ExecuteThread:
229080 wls81
714m 637m 1804 S
0:14.13 ExecuteThread:
228963 wls81
714m 637m 1804 S
0:13.44 (GC Main Thread
229070 wls81
714m 637m 1804 S
0:05.97 ExecuteThread:
229664 wls81
714m 637m 1804 S
0:08.69 pool-1-thread-7
Threadump信息片段:
"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/O[Ljava/lang/O)Ljava/lang/O(Unknown Source)
at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodA
浏览 10858
新来的菜鸟
浏览: 86704 次
来自: 上海
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'一,在centos linux 上查看进程占用cpu过高
查看哪个进程程消耗最高
二,查看JAVA进程中哪个线程消耗最高
2.1 导出java运行的线程信息
jstack 进程id(jps查看)
jstack 进程id & ps.txt
jstack -l 进程id (窗口打印)
//另外还有一种方式
如果启动方式如下:
nohup java -classpath conf/:my.jar
com.tank.manClass&./log.out 2&&1 &
则执行:&kill -3 PID,进程信息会输出到/log.out&
2.2 查找最消耗cpu的java线程
找到java进程PID
命令:ps -mp&pid&-o THREAD,tid,time & 或者 &ps -Lfp&pid
通过%CPU和 TIME,判断占用的线程TID
找到TID,转换成16进制,然后在上面(jstack 进程id & ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。
阅读(...) 评论()【原创】如何查看某进程下运行的线程
【原创】如何查看某进程下运行的线程
研究 Atlas 过程中,需要了解其进程模型(线程模型),那么如何查看其运行模式呢? 前提:Atlas 配置了 daemon 模式和 keepalive 功能。
[root@Betty conf]# vi modb.
研究 Atlas 过程中,需要了解其进程模型(线程模型),那么如何查看其运行模式呢? 前提:Atlas 配置了 daemon 模式和 keepalive 功能。
[root@Betty conf]
[mysql-proxy]
daemon = true
keepalive = true
查看方式: 1. ps 命令查看 从 man ps 中可以如下说明,可以显示进程关系,
To print a process tree:
但 ps -ejH 显示出来的东东比较难看,所以采用第二种方式查看,
[root@Betty conf]
0:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
\_ mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
那么如何显示线程关系呢?有如下说明,
To get info about threads:
执行后输出(采用第一种方式查看,原因同上)
[root@Betty conf]
C NLWP STIME TTY
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
00:00:00 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
1 16:32 pts/5
00:00:00 grep mysql-proxy
其中 LWP -- 轻量级进程,即线程,这里显示的是 thread id。 NLWP -- 线程数,即 number of threads in process。 如果还想要查看线程究竟运行在哪个 CPU 上,则执行如下命令,
[root@Betty conf]
LWP PSR COMMAND
2 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
1 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
0 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
3 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
1 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
1 mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/modb.cnf
2 grep mysql-proxy
[root@Betty conf]
关键参数说明如下:
To see every process with a user-defined format:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
Show threads, possibly with LWP and NLWP columns
processor that process is currently assigned to.
2. pstree 命令查看 查看 mysql-proxy 对应的进程 id 。
[root@Betty conf]
00:00:00 mysql-proxy
00:00:00 mysql-proxy
分别查看以上两个进程的树形关系。
[root@Betty conf]
mysql-proxy---mysql-proxy---4*[{mysql-proxy}]
[root@Betty conf]
mysql-proxy(3756)-+-{mysql-proxy}(3757)
|-{mysql-proxy}(3758)
|-{mysql-proxy}(3759)
`-{mysql-proxy}(3760)
[root@Betty conf]
3. top 命令查看 查看 id 为 3756 的进程包含的线程。
[root@Betty conf]
top - 17:32:19 up
load average: 0.00, 0.00, 0.00
0 running,
5 sleeping,
0 stopped,
0.1%ni, 99.7%id,
3941948k total,
897296k used,
3044652k free,
116232k buffers
5996536k total,
5996536k free,
516676k cached
SHR S %CPU %MEM
0:00.00 mysql-proxy
0:00.00 mysql-proxy
0:00.00 mysql-proxy
0:00.00 mysql-proxy
0:00.00 mysql-proxy
按 f 后显示
Current Fields:
AEHIOQTWKNMbcdfgjplrsuvyzX
for window 1:Def
Toggle fields via field letter, type any other key to return
= Process Id
= User Name
= Priority
= Nice value
= Virtual Image (kb)
= Resident size (kb)
= Shared Mem size (kb)
= Process Status
= CPU usage
= Memory usage (RES)
* M: TIME+
= CPU Time, hundredths
= Parent Process Pid
= Real user name
= Group Name
= Controlling Tty
= Last used cpu (SMP)
= Swapped size (kb)
= CPU Time
= Code size (kb)
= Data+Stack size (kb)
= Page Fault count
= Dirty Pages count
= Sleeping in Function
= Task Flags &sched.h&
* X: COMMAND
= Command name/line
Flags field:
PF_ALIGNWARN
PF_STARTING
PF_EXITING
PF_FORKNOEXEC
PF_SUPERPRIV
PF_DUMPCORE
PF_SIGNALED
PF_MEMALLOC
PF_FREE_PAGES (2.5)
debug flag (2.5)
special threads (2.5)
0x001D0000
special states (2.5)
PF_USEDFPU (thru 2.4)
按 j 后变化的项为
= Last used cpu (SMP)
按回车或空格保存,退回到 top 界面,显示如下
top - 17:34:07 up
load average: 0.00, 0.00, 0.00
0 running,
5 sleeping,
0 stopped,
0.0%ni,100.0%id,
3941948k total,
897172k used,
3044776k free,
116264k buffers
5996536k total,
5996536k free,
516676k cached
SHR S %CPU %MEM
0:00.00 1 mysql-proxy
0:00.00 0 mysql-proxy
0:00.00 1 mysql-proxy
0:00.00 1 mysql-proxy
0:00.00 1 mysql-proxy
在 top 的显示中会多出 P 这一列是最近一次运行该线程(进程)的CPU 。 4. 到进程对应的目录下查看
[root@Betty conf]
mysql-proxy
S (sleeping)
TracerPid:
FDSize: 64
Groups: 0 1 2 3 4 6 10
StaBrk: 0df5c000 kB
0e087000 kB
StaStk: 7fffb0fea000 kB
SigPnd: 0000
ShdPnd: 0000
SigBlk: 0000
SigIgn: 1000
SigCgt: 4a03
CapInh: 0000
CapPrm: fffffeff
CapEff: fffffeff
Cpus_allowed:
00,00,0ffff
Mems_allowed:
[root@Betty conf]
表示该进程下包含 5 个线程(3756 进程对应的线程 + 由其创建的工作线程)。
用云栖社区APP,舒服~
【云栖快讯】新年大招!云栖社区为在读大学生/研究生准备了一份学(huan)习(zhuang)攻略,发布博文即有机会赢得iPad mini 4等大奖,学习换装两不误!欢迎报名参与~&&
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、Po...
2017阿里千余份技术干货大盘点

我要回帖

更多关于 进程与线程 的文章

 

随机推荐