運行命令:
jmap -heap 6709
報錯如下:
Attaching to process ID 6709, please wait... sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library names (libjvm.so, libjvm_g.so, gamma_g) at sun.jvm.hotspot.HotSpotTypeDataBase.lookupInProcess(HotSpotTypeDataBase.java:585) at sun.jvm.hotspot.HotSpotTypeDataBase.readVMTypes(HotSpotTypeDataBase.java:150) at sun.jvm.hotspot.HotSpotTypeDataBase.<init>(HotSpotTypeDataBase.java:85) at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:569) at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:493) at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:331) at sun.jvm.hotspot.tools.Tool.start(Tool.java:163) at sun.jvm.hotspot.tools.HeapSummary.main(HeapSummary.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.tools.jmap.JMap.runTool(JMap.java:197) at sun.tools.jmap.JMap.main(JMap.java:128) Debugger attached successfully. sun.jvm.hotspot.tools.HeapSummary requires a java VM process/core!
報錯原因:
根據錯誤提示,可以看出來,需要一個java jvm的核心進程。
明明PID就是我java進程的PID,進程編號呀。
錯誤原因:
PID不是你要查看的JAVA進程的PID,注意區分你到底要查看那個JVM進程。
解決方法:
查看java進程的PID
ps -ef | grep java
現在自己查看一下,就可以發現
6709是另一個位置的java進程。
19570才是 我們當前想要查看的JVM進程。
因為自己安裝的java路徑在/mnt/apps/soft/java路徑 。配置的環境變量也是這個路徑下的JDK.
所以運行jmap指定錯誤的PID就導致了開始的錯誤。
現在修改jmap指定的PID
jmap -heap 19570
運行成功:
Attaching to process ID 19570, please wait... Debugger attached successfully. Server compiler detected. JVM version is 24.80-b11 using thread-local object allocation. Parallel GC with 8 thread(s) Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 4164943872 (3972.0MB) NewSize = 1310720 (1.25MB) MaxNewSize = 17592186044415 MB OldSize = 5439488 (5.1875MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 21757952 (20.75MB) MaxPermSize = 85983232 (82.0MB) G1HeapRegionSize = 0 (0.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 1245708288 (1188.0MB) used = 550338952 (524.844123840332MB) free = 695369336 (663.155876159668MB) 44.17879830305825% used From Space: capacity = 68681728 (65.5MB) used = 507920 (0.4843902587890625MB) free = 68173808 (65.01560974121094MB) 0.7395271126550572% used To Space: capacity = 70254592 (67.0MB) used = 0 (0.0MB) free = 70254592 (67.0MB) 0.0% used PS Old Generation capacity = 217055232 (207.0MB) used = 116954920 (111.53690338134766MB) free = 100100312 (95.46309661865234MB) 53.88256201997471% used PS Perm Generation capacity = 85983232 (82.0MB) used = 75303848 (71.81534576416016MB) free = 10679384 (10.184654235839844MB) 87.57968995629287% used 40959 interned Strings occupying 4521736 bytes.