• jar服务导致cpu飙升问题-带解决方法


    jar服务导致cpu飙升问题-解决

    问题

    我们服务器是8核cpu,64G内存按照正常道理,跑几个jar包服务不会造成 cpu飙升300%,

    查看问题

    使用 top查看,或者HTOP

    image-20220810135839101

    image-20220810135947555

    查看容器

    我们是容器里面跑的jar包服务

    docker ps
    
    • 1

    找到运行的java服务
    image-20220810140257014

    进入到java服务容器里面

    docker exec -it  xxxx  /bin/bash
    
    • 1

    进入到容器里面使用top命令查看
    image-20220810140518543

    java服务堆栈日志查看-jstack 命令

    1、死循环导致cpu飙高

    死循环的例子:https://blog.csdn.net/goldenfish1919/article/details/8755378

    步骤:查找进程-》查找线程-》分析threadDump日志-》找出问题代码

    生成进程下所有线程的栈日志
     jstack 1721 > 1712.txt
    
    • 1
    查看进程下哪些线程占用了高的cpu
     top -p 1712 -H
    
    • 1
    将十进制pid转换为十六进制的pid
    printf  %x 8247
    
    • 1
    网上在线转换十六进制

    image-20220810141248349

    我这边解决的方法

    查看pid

    image-20220810141459864

    查看进程下哪些线程占用了高的cpu
    top -p 7 -H
    
    • 1

    image-20220810141825364

    将十进制pid转换为十六进制的pid

    image-20220810141928615

    java服务查看日志

    动态查看30行日志
    jstack 7 | grep 23 -A 30
    
    • 1

    image-20220810142409432

    追加成日志
    jstack 7    >>  bosCenterService.logs #后面名字自定义
    
    • 1

    我这边的处理,我是运维改不动他们的代码,我把对应的java服务日志,以上截图给到开发人员,然后把容器里面的java日志,拷贝到宿主机,给到开发,最后由开发处理

    docker容器里面拷文件到宿主机

    1、从容器里面拷文件到宿主机?
     docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
    
      
      docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 
    
    • 1
    • 2
    • 3
    • 4
    2、从宿主机拷文件到容器里面
     docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
     
     docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
    
    • 1
    • 2
    • 3

    l
    docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

    docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

    
    
    • 1
  • 相关阅读:
    矩阵分析与应用+张贤达
    Mysql学习(一)之Mysql的介绍和安装
    Django笔记十五之in查询及date日期相关过滤操作
    Apache 基金会年度报告 | ShardingSphere 代码提交量位列前十
    Profiler内存泄露实际案例分析
    “查找”学习提纲(二)——树型查找和散列查找
    数字角频率w、模拟角频率Ω
    Docker 中下载各版本的 CentOS、CentOS Steam 方式
    【Python】Pandas数据处理教程
    使用JsonView在页面展示Json树
  • 原文地址:https://blog.csdn.net/tianmingqing0806/article/details/126266873