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

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

性能优化--实战利用arthas排查java服务cpu占用过高的问题_第1张图片

启动arthas,选择需要监控的进程性能优化--实战利用arthas排查java服务cpu占用过高的问题_第2张图片

  1. dashboar查看该应用整体情况性能优化--实战利用arthas排查java服务cpu占用过高的问题_第3张图片

  2. 使用thread命令,查看占用cpu过高的几个线程ID
  3. 性能优化--实战利用arthas排查java服务cpu占用过高的问题_第4张图片
  4. 然后使用thread 线程ID查看具体线程在执行哪些内容,可以看到对应的类和方法
  5. uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

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

    正在上传…

    重新上传

    取消

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

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

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

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

    uploading.4e448015.gif

    正在上传…

    重新上传

    取消

你可能感兴趣的:(java,jvm,开发语言)