【调优】JVM自带监控工具

1. jstat

jstat -gcutil 67008 5s 3
  • S0:第一个幸存区的使用百分比。在你的数据中,第一个幸存区(Survivor 0)的使用率为 25.00%。

  • S1:第二个幸存区的使用百分比。在你的数据中,第二个幸存区(Survivor 1)的使用率为 0.00%。

  • E:Eden 区的使用百分比。在你的数据中,Eden 区的使用率为 85.85%。

  • O:老年代的使用百分比。在你的数据中,老年代的使用率为 19.06%。

  • M:元空间(Metaspace)的使用百分比。在你的数据中,元空间的使用率为 95.69%。

  • CCS:压缩类空间的使用百分比。在你的数据中,压缩类空间的使用率为 93.65%。

  • YGC:年轻代垃圾回收的次数。在你的数据中,年轻代垃圾回收已经发生了 56 次。

  • YGCT:年轻代垃圾回收的总时间(秒)。在你的数据中,年轻代垃圾回收总共消耗了 0.273 秒。

  • FGC:老年代垃圾回收的次数。在你的数据中,老年代垃圾回收已经发生了 4 次。

  • FGCT:老年代垃圾回收的总时间(秒)。在你的数据中,老年代垃圾回收总共消耗了 0.293 秒。

  • GCT:总垃圾回收的时间,包括年轻代和老年代(秒)。在你的数据中,总垃圾回收时间为 0.566 秒。

查看pid为67008的进程的堆内存各个区域占用总容量百分比,5秒刷新一次,共查询3次

2. jstack

这个命令通常用于捕获Java线程堆栈跟踪

jstack 97598 | grep 17d40 -A20 

JVM堆栈消耗

 

3. jinfo

jinfo -flags 15780
  • JVM 版本:JVM 版本是 "25.281-b09",它指示了 JVM 的构建版本。

  • VM flags:这是一些非默认的 JVM 参数,它们会影响 JVM 的行为。其中一些重要的参数包括:

    • -XX:MaxHeapSize=4273995776:最大堆内存大小为 4,273,995,776 字节(大约 4 GB)。
    • -XX:MaxNewSize=1424490496:最大新生代大小为 1,424,490,496 字节(大约 1.35 GB)。
    • -XX:UseParallelGC:JVM 使用并行垃圾收集器(Parallel GC)。
    • -XX:+UseCompressedClassPointers-XX:+UseCompressedOops:启用压缩指针以减小内存占用。
    • -XX:TieredStopAtLevel=1:指定编译层次,可能与编译器优化有关。
    • -XX:InitialHeapSize=268435456:初始堆内存大小为 268,435,456 字节(大约 256 MB)。
  • Command line:这是 JVM 启动时的命令行参数,包括了一些启动参数和代理参数。其中一些参数包括:

    • -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:62170,suspend=y,server=n:指定了 Java 调试代理,允许远程调试。
    • -javaagent:D:\java\skywalking-agent\skywalking-agent.jar-javaagent:C:\Users\Admin\AppData\Local\JetBrains\IntelliJIdea2020.3\captureAgent\debugger-agent.jar:启用了 Java 代理,可能用于性能监控或调试。

查看jvm的参数

4. jmap

jmap -heap 15780  (1234为进程号)
  1. JVM 版本:JVM 的版本是 "25.281-b09",它指示了 JVM 的构建版本。

  2. 垃圾收集器:JVM 正在使用 Parallel GC(并行垃圾收集器),它有 10 个线程用于执行垃圾回收。

  3. 堆配置:这部分提供了有关 JVM 堆内存的配置信息,包括最小和最大堆空闲比率、最大堆大小、新生代大小、老年代大小、新生代比率、Survivor 比率、元空间大小、压缩类空间大小等。

  4. 堆使用情况:这一部分提供了堆内存使用情况的统计数据:

    • PS Young Generation 是新生代的统计信息。
    • Eden Space 是新生代的 Eden 区,显示了容量、已使用、剩余和使用率。
    • From SpaceTo Space 是新生代的幸存者区(Survivor Space)。
    • PS Old Generation 是老年代的统计信息,显示了容量、已使用、剩余和使用率。
    • "interned Strings" 是字符串常量池中的统计信息,包括占用的内存和数量。

打印堆信息

posted @ 2018-08-24 18:00  yifanSJ  阅读(361)  评论(0编辑  收藏  举报