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

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

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

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

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

    扫描二维码关注公众号,回复: 17369094 查看本文章

    正在上传…

    重新上传

    取消

    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