• 【JVM】聊聊常见的JVM排查工具


    JDK工具包

    jps 虚拟机进程状况工具

    jps是虚拟机进程状况工具,列出正在运行的虚拟机进程,使用 Windows 的任务管理器或 UNIX 的 ps 命令也可以查询,但如果同时启动多个进程,必须依赖 jps。jps -l 显示类名

    jps :列出Java程序进程ID和Main函数名称
    jps -q :只输出进程ID
    jps -m :输出传递给Java进程(主函数)的参数 jps -l :输出主函数的完整路径
    jps -v :显示传递给Java虚拟的参数

    在这里插入图片描述

    jstat:虚拟机统计信息监视工具

    监视虚拟机各种运行状态信息,显示本地或远程虚拟机进程中的类加载、内存、垃圾收集、即时编译器等运行时数据。

    options:由以下值构成
    -class:显示ClassLoader的相关信息
    -compiler:显示JIT编译的相关信息
    -gc:显示与GC相关信息
    -gccapacity:显示各个代的容量和使用情况
    -gccause:显示垃圾收集相关信息(同-gcutil),同时显示最后一次或当前正在发生的垃圾收集的诱发原因
    -gcnew:显示新生代信息
    -gcnewcapacity:显示新生代大小和使用情况
    -gcold:显示老年代信息
    -gcoldcapacity:显示老年代大小
    -gcpermcapacity:显示永久代大小
    -gcutil:显示垃圾收集信息

    jstat -gc
    进程内存区域及GC详细信息

    jstat -gc pid 250 -4 (采样间隔250ms 采样数4)
    在这里插入图片描述
    jstat -gcutil pid 1s 5 (间隔1S 5次 百分比显示)
    在这里插入图片描述

    jinfo

    jinfo可以用来查看正在运行的Java程序的扩展参数,甚至支持修改运行过程中的部分参数
    在这里插入图片描述

    jmap

    jmap用来查看堆内存使用状况,一般结合jhat使用。

    生成堆转储文件

    jmap -dump:format=b,file=heapdump.hprof pid
    
    • 1

    Java生成堆转储的方式有多种:

    1. 使用 jmap -dump 选项可以在JVM运行时获取 dump.
    2. 使用 jconsole 选项通过 HotSpotDiagnosticMXBean 从运行时获得堆转储。
    3. 在虚拟机启动时如果指定了 -XX:+HeapDumpOnOutOfMemoryError 选项,则抛出 OutOfMemoryError 时,会自动执行堆转
      储。

    jstack

    jstack是Java虚拟机自带的一种堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照。

    jstack -l 30108 | grep 'java.lang.Thread.State' | wc -l // 统计线程数
    
    • 1
    jstack pid 76859
    
    • 1

    在这里插入图片描述

    第三方工具

    https://gceasy.io/ 分析日志在线

    Arthas 等

    dashboard
    当前进程的信息
    在这里插入图片描述

    查看线程thread
    通过thread命令来获取到应用进程的线程信息,thread -1会打印线程统计信息
    在这里插入图片描述

    反编译已加载类源码
    运行期通过jad来反编译项目代码, 可以用来验证代码是否上线成功。
    在这里插入图片描述

    具体使用,可以查看 https://arthas.aliyun.com/doc/

  • 相关阅读:
    C++(24): C++17探索:std::variant的使用
    流形上的预积分(上)
    RK3568+Codesys ARM+LINUX硬件平台的软PLC解决方案
    LeetCode 1726. 同积元组【数组,哈希表】1530
    网络协议:Cookie与Session技术
    MySQL条件查询
    「Dr. Bomkus 的试炼」——最详尽的通关资讯!
    尚硅谷SSM整合之mybatis学习打卡
    Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)
    uniapp优化h5项目-摇树优化,gzip压缩和删除console.log
  • 原文地址:https://blog.csdn.net/jia970426/article/details/136406617