jvm信息jmap使用的基本方法教程
前言
大家都知道有很多开源的监控工具,本次只使用了jmap,了解简单使用,谢谢,下面话不多说了,来一起看看详细的介绍吧
使用方法如下:
开始了,922是我的tomcat进程
帮助命令查看,有哪些命令可以使用。
[root@bogon/]#jmap-help Usage: jmap[option](toconnecttorunningprocess) jmap[option] (toconnecttoacorefile) jmap[option][server_id@] (toconnecttoremotedebugserver) where
使用1:jmappid查看基本信息
[root@bogon/]#jmap922 AttachingtoprocessID922,pleasewait... Debuggerattachedsuccessfully. Servercompilerdetected. JVMversionis25.111-b14 0x00000000004000007K/usr/local/software/java/bin/java 0x0000003ddde00000153K/lib64/ld-2.12.so 0x0000003dde20000022K/lib64/libdl-2.12.so 0x0000003dde6000001881K/lib64/libc-2.12.so 0x0000003ddea00000142K/lib64/libpthread-2.12.so 0x0000003ddee0000045K/lib64/librt-2.12.so 0x0000003ddf200000585K/lib64/libm-2.12.so 0x0000003de0e00000111K/lib64/libresolv-2.12.so 0x0000003de9e0000091K/lib64/libgcc_s-4.4.7-20120601.so.1 0x00007f90de58600026K/lib64/libnss_dns-2.12.so 0x00007f913c39d000250K/usr/local/software/java/jre/lib/amd64/libsunec.so 0x00007f913cbf200090K/usr/local/software/java/jre/lib/amd64/libnio.so 0x00007f913d103000113K/usr/local/software/java/jre/lib/amd64/libnet.so 0x00007f913d31a00049K/usr/local/software/java/jre/lib/amd64/libmanagement.so 0x00007f919a43b000121K/usr/local/software/java/jre/lib/amd64/libzip.so 0x00007f919a65600064K/lib64/libnss_files-2.12.so 0x00007f919a874000220K/usr/local/software/java/jre/lib/amd64/libjava.so 0x00007f919aaa000064K/usr/local/software/java/jre/lib/amd64/libverify.so 0x00007f919acef00016584K/usr/local/software/java/jre/lib/amd64/server/libjvm.so 0x00007f919bce2000100K/usr/local/software/java/lib/amd64/jli/libjli.so
使用2:查看堆信息,jmap-heappid
[root@bogon/]#jmap-heap922 AttachingtoprocessID922,pleasewait... Debuggerattachedsuccessfully. Servercompilerdetected. JVMversionis25.111-b14 usingparallelthreadsinthenewgeneration. usingthread-localobjectallocation. ConcurrentMark-SweepGC HeapConfiguration: MinHeapFreeRatio=40 MaxHeapFreeRatio=70 MaxHeapSize=4294967296(4096.0MB)最大堆大小 NewSize=3221225472(3072.0MB)新生代大小 MaxNewSize=3221225472(3072.0MB)最大分配新生代内存 OldSize=1073741824(1024.0MB)老年代大小 NewRatio=2 SurvivorRatio=8新生代与老年代的比例 MetaspaceSize=21807104(20.796875MB) CompressedClassSpaceSize=1073741824(1024.0MB) MaxMetaspaceSize=17592186044415MB G1HeapRegionSize=0(0.0MB) HeapUsage:堆的使用情况 NewGeneration(Eden+1SurvivorSpace):新生代 capacity=2899116032(2764.8125MB) used=384206560(366.4079284667969MB) free=2514909472(2398.404571533203MB) 13.25254166301682%used EdenSpace:新生代eden区空间 capacity=2577006592(2457.625MB) used=378654344(361.11292266845703MB) free=2198352248(2096.512077331543MB) 14.693572968555294%used FromSpace:2个Survivor区域其中一个就是这个from区 capacity=322109440(307.1875MB) used=5552216(5.295005798339844MB) free=316557224(301.89249420166016MB) 1.723704837709817%used ToSpace:2个Survivor区域其中一个就是这个to区 capacity=322109440(307.1875MB) used=0(0.0MB) free=322109440(307.1875MB) 0.0%used concurrentmark-sweepgeneration:老年代eden区空间 capacity=1073741824(1024.0MB) used=846734040(807.5085067749023MB) free=227007784(216.49149322509766MB) 78.85825261473656%used
使用3:jmap-histopid查看一些class的使用情况,
jmap-histo922 由于里面比较多内容,所以放弃了,可以自己使用一下,如果电脑展示不了一屏呢,可以这样。 jmap-histo922>dump.txt导出文件,可以自己看了 下面是我自己导出的文件信息 num#instances(实例数量)#bytes(字节)classname ---------------------------------------------- 1:1740691579369600[C 2:4403122732640[I 3:957116889072[B 4:1576803784320java.lang.String 5:382793674784java.util.jar.JarFile$JarFileEntry 6:709822271424java.util.HashMap$Node 7:132351164680java.lang.reflect.Method 8:60011028952[Ljava.util.HashMap$Node; 又或者可以过滤信息,命令:jmap-histo922|grepdubbo过滤一下,就过滤你想要的信息
使用4:jmap-histo:livepid>dump.txt
这个和使用3差不多,都是在统计,只不过这个是在统计正在使用的对象,然后dump对象信息。
这种命令都是结合其它的命令一起使用的,以后会有文章结合一起分析,同学有什么好的工具也分享出来,一起学习,本篇只介绍jmap
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。