服务器CPU过高,排查方法

top                                                #定位异常的进程
top -H -p pid                                      #查看异常的线程
strace -T -r -c -p pid                             #查看系统调用和花费的时间
printf "%x/n"线程号                                 #将异常线程转化为16进制
jstack 进程号|grep 线程号(16进制异常线程号)-A90     #定位异常的代码
  1. 使用【top】命令定位异常进程,可发现12836的CPU和内存占用率都非常高;

top 命令默认情况下,是每 3 秒刷新一次。也可以通过 top -d <刷新时间间隔> 来指定刷新频率,如top -d 0.1 或top -d 0.01 等。top 执行时,也可以按“s ”键,修改时间间隔。

  1. 使用【top -H -p 进程号】查看异常线程
  2. 使用【printf "%x\n" 线程号】将异常线程号转化为16进制
  3. 使用【jstack 进程号|grep 16进制异常线程号 -A90】来定位异常代码的位置(最后的-A90是日志行数,也可以输出为文本文件或使用其他数字)。可以看到异常代码的位置

可以参考:https://blog.csdn.net/MachaelYong/article/details/78950059

                  https://www.cnblogs.com/jing1617/p/7429053.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值