首页 > 编程知识 正文

jmap heap,jstat用法

时间:2023-05-04 00:36:56 阅读:50919 作者:646

以前的文章讨论了如何使用jstack,但本文讨论了其他两个有助于解决问题的命令jstat、jmap。

jstat jstat有助于显示Jvm的堆栈信息。 能够看到eden、survivor、old、perm等heap的capacity、utility信息,对查看系统是否存在内存泄漏以及参数设置是否合理有很好的意义。

jstat -gc pid显示gc的信息,可以显示看到gc的次数和时间。

最后5个项目是young gc的次数、young gc的时间、full gc的次数、full gc的时间、gc的总时间。

jst at-GC容量PID可以显示虚拟机存储器中三代(young、old、perm )对象的使用和占用大小。 例如,可以从下面类推,PGCMN指示最小perm的内存使用量,PGCMX指示perm的内存使用量的最大使用量,PGC指示当前新生成的perm的内存使用量,而PGC指示当前新生成的perm的内存使用量

stat -gcutil pid统计gc信息统计。

jstat -gcnew pid年轻一代对象的信息。

jstat -gcnewcapacity pid年轻一代对象的信息及其占有量。

jstat -gcold pid old层代对象的信息。

stat -gcoldcapacity pid old世代对象的信息及其占有量。

jstat -gcpermcapacity pid perm对象的信息及其占有量。

jstat -class pid显示加载的class数量和占用空间等信息。

启动打印完成PID当前在虚拟机中运行的信息。

名称说明S0C (年轻一代第一个survivor )生存区)容量(字节) S1C (年轻一代第二个survivor )容量(字节) S0U (年轻一代第一个survivor )生存区)目前已使用)的容量)字节)欧盟)年轻一代中的Eden )伊甸园)当前使用的容量(字节oc ) old一代的容量)字节) old一代当前使用的容量)字节(PC ) Perm )永久一代)的容量)字节从应用启动到采样的年轻一代中的gc使用时间(s ) Fgc )从APP应用启动到采样的old一代(全部gc ) gc次数FgcT )从APP应用启动到采样的old一代(全部gc ) GC使用时间(s ) ) ung )中初始化(最小)的大小)字节;NGCMX :年轻一代(young )的最大容量)字节;NGC :年轻一代(young )中当前容量)字节;OGCMN:old一代中初始化)最小)的大小pg ccn S0 )第一个survivor (生存区)在年轻一代中使用的当前容量的百分比S1 )第二个survivor (在年轻一代中使用的当前容量的百分比e )第二个survivor (在年轻一代中使用的当前容量的百分比Eden )伊甸园)使用的当前容量的百分比o ) OLD ivor (生存区域)的最大容量(字节) S1CMX (年轻一代中第二个survivor (生存区域)的最大容量)字节(ECMX ) (年轻一代中的Eden )索引特别值得一提的是,此命令可以导出lmdsgary heap dump的lmdsg文件。 此文件标识可能发生内存泄漏的位置。

histo jmap -histo pid显示类的内存情况

这包括每个Java类、对象数、内存大小(单位:字节)和完全限定的类名。 打印的虚拟机中的类名将带有“*”前缀。 如果指定了“动态”子选项,则仅计算活动对象。

heap jmap -heap pid显示pid的整体堆信息

dump导出的文件可以用于分析,如jhat和mat,以确定内存溢出的原因。

运行此命令时,JVM会将整个heap的信息dump写入一个文件。 如果heap较大,则此过程需要较长的时间,并且在运行过程中dump的信息是可信的,因此会暂停应用, 线上系统慎用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。