CPU100%解决思路

 arthas中文官网

CPU100%解决思路

1、查消耗cpu最高的进程PID。
top -c    
    显示进程运行信息列表,
P         
    进程按照cpu使用率排序,发现第一位使用率172%,记下PID:9047。记下项目名:erp-web-api。


2、根据PID查出消耗cpu最高的线程号。
top -Hp 9047    
    显示一个进程的线程运行信息列表。
P               
    进程按照cpu使用率排序,前面四个的cpu都是80+%,记下四个线程号,分别是:9099、9102、27967、27970。

3、把四个线程号转成十六进制
printf %x 9099            
    238b
printf %x 9102            
    238e
printf %x 27967           
    6d3f
printf %x 27970           
    6d42

4、
jstack -l 9047 > ./9047.stack
    根据线程号查出对应的java线程,进行处理。
cat 9047.stack | grep '238b' -C 20
    执行grep命令,看线程238b做了什么。
    由图可见,cpu使用率高的线程都在GC task,JVM的GC线程一直在占用大量CPU
cat 6846.stack | grep 'erp-web-api' -C 20 | less
    可以看到对应的日志

常用命令

jps					        列出了当前系统中存在的java进程
top -p 3618				    这里的3618是上一行返回的进程id
jstat -gcutil 18862 2000 20	输出进程ID为3618的内存使用情况(每2000毫秒输出一次,一共输出20次)
jstack 6400 > stack.out		导出线程栈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值