性能优化--实战利用arthas排查java服务cpu占用过高的问题

发布时间:2024年01月09日

使用jps -l查看目前的java应用进程

启动arthas,选择需要监控的进程

  1. dashboar查看该应用整体情况

  2. 使用thread命令,查看占用cpu过高的几个线程ID
  3. 然后使用thread 线程ID查看具体线程在执行哪些内容,可以看到对应的类和方法
  4. uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

  5. 使用jad反编译 对应类的方法,分析具体的代码,定位问题
  6. uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    可以看到此处,只要有一个线程的任务执行不完,就会死循环大量消耗cpu资源;

    接下来就是对发现的问题进行处理,可以从业务设计层面或者代码层次处理;

    例如此处,可以换一种等待线程结束的方法

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

文章来源:https://blog.csdn.net/worldkingpan/article/details/129737016
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。