排查线程占用cpu高的情况

1.展示机器上所有线程的cpu利用率

ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

按照cpu从小到大排序

admin    24931 20874 24931 00:00:00  0.0 ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
admin    25076     1 25076 00:00:31  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1 25086 00:00:39  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1 25087 00:00:00  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1 25088 00:00:43  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1 25089 00:00:26  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1 25090 00:00:00  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1  5881 00:00:44  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25076     1  5884 00:00:45  0.0 /export/servers/autodeploy_agent/bin/deploy -c /export/servers/autodeploy_agent/conf/config.json -s restart > /dev/null 2>&
admin    25139     1 25139 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25145 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25149 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25150 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25151 00:00:27  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25152 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25154 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25155 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25156 00:00:10  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25157 00:00:04  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25158 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25159 00:05:37  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25175 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25176 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25177 00:00:23  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25178 00:00:10  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25179 00:00:08  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25180 00:00:03  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25181 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 25182 00:01:08  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin    25139     1 24341 00:00:00  0.0 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPermSize=32M -XX:+UseAdapti
admin     3231     1  3290 00:05:57  0.1 /export/servers/jdk1.8.0_60/bin/java -Xms2G -Xmx2G -server -XX:MaxPermSize=256M -Xss256K -Dloader.path=file:/export/Instanc
admin     3231     1  3870 00:07:02  0.1 /export/servers/jdk1.8.0_60/bin/java -Xms2G -Xmx2G -server -XX:MaxPermSize=256M -Xss256K -Dloader.path=file:/export/Instanc
admin     3231     1  3889 00:21:52  0.4 /export/servers/jdk1.8.0_60/bin/java -Xms2G -Xmx2G -server -XX:MaxPermSize=256M -Xss256K -Dloader.path=file:/export/Instanc
admin     3231     1  3888 00:22:20  0.5 /export/servers/jdk1.8.0_60/bin/java -Xms2G -Xmx2G -server -XX:MaxPermSize=256M -Xss256K -Dloader.path=file:/export/Instanc

2. 线程id转16进制

3888转16进制为f30

[admin@pod-qidzou9g82 ~]$ printf '%x\n' 3888
f30

3.查看该线程id的栈信息

jstack 3231 | egrep 'f30' -A 10

结果

[admin@pod-qidzou9g82 ~]$ jstack 3231 | egrep 'f30' -A 10
"MP-SystemClock" #61 daemon prio=5 os_prio=0 tid=0x00007f54cc40b000 nid=0xf30 runnable [0x00007f54afbf6000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0000000081748448> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
posted @   SpecialSpeculator  阅读(281)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2021-06-01 第三部分-并发设计模式28:Immutability
2021-06-01 Springboot单元测试@RunWith注解
2021-06-01 泛型类,泛型方法的使用
2021-06-01 Mapper注解与MapperScan注解
2021-06-01 Configuration注解
2021-06-01 如何保证mq不丢消息
2021-06-01 自定义异常
点击右上角即可分享
微信分享提示