线上CPU100%处理满载记录

服务器CPU满载
在这里插入图片描述
查看25831进程服务

ps 25831

在这里插入图片描述
由于这个Java服务是采用Docker容器技术部署的,所以需要进入Java服务对应的容器当中去

docker exec -it medical-search-service /bin/bash

查看容器中top命令,获得Java服务pid=7
在这里插入图片描述
或者采用jps命令,同样获取Java服务pid=7

root@38af534c453a:/# jps -lv
386 sun.tools.jps.Jps -Dapplication.home=/usr/lib/jvm/java-8-openjdk-amd64 -Xms8m
7 medical-search-admin.jar

查找进程pid=7占用率高的线程

top -H -p 7

在这里插入图片描述
从上图获取CPU占用率最高的线程编号:66(十进制),然后转化为16进制,其结果:42,记住这个数字,后面要用到

[root@msnode3 ~]# printf "%x\n" 66
42

导出执行堆栈,当前位置容器根目录下面:/

jstack 7 >> error.txt

然后cp到宿主机上,然后下载到本地分析,或者直接采用命令查看也可以

docker cp medical-search-service:/error.text /opt/module/medical-search-service/

查找其线程:0x42,便能找到导致CPU满载的原因:这次故障是导出的时候一个工具类导致的(位置:ExcelUtils.java:109),然后分析其代码
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值