• JVM的监控工具之jmap


    参考博客:https://www.jianshu.com/p/a4ad53179df3

    jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。 jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,
    如空间使用率、当前用的是哪种收集器等。和jinfo命令一样,jmap有不少功能在Windows平台下都是受限的,
    除了生成dump文件的-dump选项和用于查看每个类的实例、空间占用统计的-histo选项在所有操作系统都提供之外,其余选项都只能在Linux/Solaris下使用。

    参数:
    option: 选项参数。
    pid: 需要打印配置信息的进程ID。
    executable: 产生核心dump的Java可执行文件。
    core: 需要打印配置信息的核心文件。
    server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。
    remote server IP or hostname 远程调试服务器的IP地址或主机名。

    no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。
    heap: 显示Java堆详细信息
    histo[:live]: 显示堆中对象的统计信息
    clstats:打印类加载器信息
    finalizerinfo: 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
    dump:<dump-options>:生成堆转储快照
    F: 当-dump没有响应时,使用-dump或者-histo参数. 在这个模式下,live子参数无效.
    help:打印帮助信息

    使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称。这与Solaris的pmap工具比较相似。

    显示Java堆详细信息,打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息

     

    执行jmap命令,-dump的参数,启动tomcat,用jmap命令来生成dump文件,先用jps -l先找出tomcat进程id,然后执行命令:jmap -dump:live,format=b,file=/usr/loca/heap.bin 33201 ,我们看到在bin目录下就产生了一个堆的转存文件。

    jmap -histo:live pid
    描述:显示堆中对象的统计信息,其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象。

    命令:jmap -clstats pid
    描述:打印类加载器信息 ,-clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据
    打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。

     

  • 相关阅读:
    Codeforces 1045C Hyperspace Highways (看题解) 圆方树
    Codeforces 316E3 线段树 + 斐波那切数列 (看题解)
    Codeforces 803G Periodic RMQ Problem 线段树
    Codeforces 420D Cup Trick 平衡树
    Codeforces 295E Yaroslav and Points 线段树
    Codeforces 196E Opening Portals MST (看题解)
    Codeforces 653F Paper task SA
    Codeforces 542A Place Your Ad Here
    python基础 异常与返回
    mongodb 删除
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11223615.html
Copyright © 2020-2023  润新知