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

使用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

    正在上传…

    重新上传

    取消

猜你喜欢

转载自blog.csdn.net/worldkingpan/article/details/129737016