• 如何快速定位JVM中消耗CPU最多的线程?


    第一步、先找出Java的进程PID

    ps -ef | grep 进程名关键字
    这里假设找到的PID是:12345
     

    第二步、找出该进程内最消耗CPU的线程

    top -Hp 12345
    
    17183 log4x     20   0 4292820 529812  23040 R 94.7  0.8   1:11.79 java -server -Xms268435456 -Xmx268435456 
    17162 log4x     20   0 4292820 529812  23040 R 87.1  0.8   1:17.90 java -server -Xms268435456 -Xmx268435456 
    17172 log4x     20   0 4292820 529812  23040 R 86.1  0.8   1:16.26 java -server -Xms268435456 -Xmx268435456 
    17176 log4x     20   0 4292820 529812  23040 R 68.0  0.8   1:12.31 java -server -Xms268435456 -Xmx268435456 
    17170 log4x     20   0 4292820 529812  23040 S  7.3  0.8   0:44.70 java -server -Xms268435456 -Xmx268435456 

    第三步、将线程编号转换成十六进制

    [root@test185 ~]# printf "%x
    " 17183
    431f

    第四步、用jstack PID打印出进程内所有的线程堆栈

    jstack 12345 > 12345.txt

    第五步、根据线程的十六进制编码,在堆栈文件中定位具体的线程堆栈。

    nid=0x431f
  • 相关阅读:
    ZZ: kvm qemu kqemu qemu-kvm libvirt
    ZZ:爬虫
    Mac下安装及配置Appium环境
    badboy使用手册
    如何正确做 Web端压力测试?
    关于web页面性能测量指标与建议
    Pycharm的使用一
    如何下载安装Python
    apache jmeter下载与安装
    但行其事,不问前程
  • 原文地址:https://www.cnblogs.com/steven-note/p/9052222.html
Copyright © 2020-2023  润新知