zoukankan      html  css  js  c++  java
  • Java项目模块占用CPU过高问题分析

    背景:近期一个模块(暂且称为A)新上了一个需求,改动了些代码,在测试环境部署之后,该模块系统CPU使用率动不动就飙升到90%,甚至200%,严重影像其他业务执行。

     

    排查过程
    1.使用top查看当前CPU使用情况,找到CPU使用率高的Java进程PID 104234

    2.根据进程PID,找到对应的服务

    ps -ef | grep 104234

    确认为之前修改过的模块A

     
    3.查看当前进程PID下所有的线程占用CPU情况,得到占用率最高线程PID 16466
    top -H -p 104234

     将这个线程PID转换成16进制,转换后为4052

     4.使用jstack命令将进程PID 104234信息导出到文件104234.log

    jstack 104234 > 104234.log 

    在104234.log中查找4052

     可以找到项目中具体的执行线程,接下来就是看该线程的执行逻辑是怎样的了,在idea中全局搜索该线程名,找到该线程的具体使用场景,进一步排查代码中可能导致CPU占用率过高的原因。

    技术交流QQ群:579949017 或者添加个人微信:xieya0126 加入微信交流群
  • 相关阅读:
    leetcode-Rotate Image
    leetcode- Rotate Array
    leetcode- Remove Element
    项目小结
    java到底有哪些重要知识点???
    js学习笔记 -- await/ async
    js学习笔记 -- Promise
    js学习笔记 -- 函数
    js学习笔记 -- 随记
    4、栈的实现:顺序存储和链式存储
  • 原文地址:https://www.cnblogs.com/dsxie/p/13490160.html
Copyright © 2011-2022 走看看