jcmd
[링크 : https://docs.oracle.com/javase/10/tools/jcmd.htm]
# jcmd --help Error parsing arguments: No command specified
Usage: jcmd PerfCounter.print|-f file> or: jcmd -l or: jcmd -h
command must be a valid jcmd command for the selected jvm. Use the command "help" to see which commands are available. If the pid is 0, commands will be sent to all Java processes. The main class argument will be used to match (either partially or fully) the class used to start Java. If no options are given, lists Java processes (same as -p).
PerfCounter.print display the counters exposed by this process -f read and execute commands from the file -l list JVM processes on the local machine -h this help |
근데 보는법을 모르겠다 ㅠㅠ
# jcmd 10776 help 10776: The following commands are available: JFR.stop JFR.start JFR.dump JFR.check VM.native_memory VM.check_commercial_features VM.unlock_commercial_features ManagementAgent.stop ManagementAgent.start_local ManagementAgent.start VM.classloader_stats GC.rotate_log Thread.print GC.class_stats GC.class_histogram GC.heap_dump GC.finalizer_info GC.heap_info GC.run_finalization GC.run VM.uptime VM.dynlibs VM.flags VM.system_properties VM.command_line VM.version help
For more information about a specific command use 'help
'.
# jcmd 10776 GC.heap_info 10776: PSYoungGen total 192512K, used 187956K [0x00000000ec400000, 0x00000000f8300000, 0x0000000100000000) eden space 189952K, 98% used [0x00000000ec400000,0x00000000f7a0d258,0x00000000f7d80000) from space 2560K, 60% used [0x00000000f7d80000,0x00000000f7f00000,0x00000000f8000000) to space 2560K, 0% used [0x00000000f8080000,0x00000000f8080000,0x00000000f8300000) ParOldGen total 647168K, used 591782K [0x00000000c4c00000, 0x00000000ec400000, 0x00000000ec400000) object space 647168K, 91% used [0x00000000c4c00000,0x00000000e8de99b8,0x00000000ec400000) Metaspace used 107438K, capacity 109826K, committed 110336K, reserved 1146880K class space used 13031K, capacity 13457K, committed 13568K, reserved 1048576K
|
[링크 : http://karunsubramanian.com/websphere/how-to-monior-heap-usage-of-a-java-application/]
+
GPL 이라는데 상용으로 사용가능한지 모르겠음
[링크 : https://visualvm.github.io/]
+
클래스 히스토그램은.. 클래스별 메모리 사용량인가?
찾다보니 jmap -histo pid도 동일한 결과를 내주네..
[링크 : http://www.openkb.info/2014/06/how-to-check-java-memory-usage.html]
일단 의미를 보건대.. [C는 Char array 라는 느낌인데
무슨 미친 char 배열 객체가 이렇게 메모리를 쳐드시나...
Element Type Encoding boolean Z byte B char C class or interface Lclassname; double D float F int I long J short S
it is an array of objects as specified by JVM Specifications for internal representation of class names:
- a single [ means an array of
- L followed by a fully qualified class name (e.g. java/lang/Object) is the class name terminated by semicolon ;
so [Ljava.lang.object; means Object[]
|
[링크 : https://stackoverflow.com/.../what-do-those-strange-class-names-in-a-java-heap-dump-mean]
+
[링크 : https://spring.io/blog/2015/12/10/spring-boot-memory-performance]