• 【转】一次java系统线程占用CPU过高问题的解决


    1、下载Windows系统和应用程序监视工具Process Explorer

    https://download.sysinternals.com/files/ProcessExplorer.zip

    2、打开ProcessExplorer,找到cpu占用高的java.exe,记下进程编号PID,比如当前是9520

    3、双击java.exe进程,打开查看CPU占用高的线程,记下线程编号TID,比如当前19600,转成16进制为4C90

    4、使用的java的jstack工具

    打开doc命令行,执行命令:jstack -l 9520 >> D:\jstack.txt

    打开D盘下的jstack.txt文件,搜索16进制的线程编号4C90,找到后就可定位到有问题的代码。

    5、linux系统下查找java占cpu高的线程

    1,使用top 命令动态的展示占用前几的进程PID, CPU消耗, TIME, RES 等信息,然后找到CPU占用最高的PID。

    2 , top -Hp  19600(pid)  显示PID进程消耗的线程各个情况。着到一个认为TIME最长的线程的PID,将PID转成16进制4C90,例如:

    printf "%x
    " 19600(PID)。

    3、使用jstack工具定位问题的原因 ./jstatck -l 9520 | grep 4C90  -A 80 。

    说明:-A 80 是关键字后的80行代码

  • 相关阅读:
    Day60
    Day53
    Day50
    Day49
    Day48
    Day47
    Day46(2)
    Day46(1)
    Day45
    Day44
  • 原文地址:https://www.cnblogs.com/yanghj010/p/13785744.html
Copyright © 2020-2023  润新知