- jps -v
展示启动参数,进程ID
- jinfo [选项] pid 虚拟机的一些参数、配置
java.runtime.name = Java(TM) SE Runtime Environment java.vm.version = 25.65-b01 sun.boot.library.path = /opt/jdk1.8.0_65/jre/lib/amd64 java.protocol.handler.pkgs = org.springframework.boot.loader java.vendor.url = http://java.oracle.com/ java.vm.vendor = Oracle Corporation path.separator = : file.encoding.pkg = sun.io java.vm.name = Java HotSpot(TM) 64-Bit Server VM sun.os.patch.level = unknown sun.java.launcher = SUN_STANDARD user.country = US user.dir = /home/test java.vm.specification.name = Java Virtual Machine Specification PID = 2261 java.runtime.version = 1.8.0_65-b17 java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment os.arch = amd64 java.endorsed.dirs = /opt/jdk1.8.0_65/jre/lib/endorsed line.separator = java.io.tmpdir = /tmp java.vm.specification.vendor = Oracle Corporation os.name = Linux sun.jnu.encoding = UTF-8 java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib spring.beaninfo.ignore = true java.specification.name = Java Platform API Specification java.class.version = 52.0 sun.management.compiler = HotSpot 64-Bit Tiered Compilers os.version = 2.6.32-431.el6.x86_64 user.home = /root user.timezone = Asia/Shanghai catalina.useNaming = false java.awt.printerjob = sun.print.PSPrinterJob file.encoding = UTF-8 @appId = application java.specification.version = 1.8 catalina.home = /tmp/tomcat.5444686089455506209.1111 user.name = root java.class.path = boot.test-1.0-SNAPSHOT.jar java.vm.specification.version = 1.8 sun.arch.data.model = 64 sun.java.command = boot.test-1.0-SNAPSHOT.jar --spring.profiles.active=peer2 java.home = /opt/jdk1.8.0_65/jre user.language = en java.specification.vendor = Oracle Corporation awt.toolkit = sun.awt.X11.XToolkit java.vm.info = mixed mode java.version = 1.8.0_65 java.ext.dirs = /opt/jdk1.8.0_65/jre/lib/ext:/usr/java/packages/lib/ext sun.boot.class.path = /opt/jdk1.8.0_65/jre/lib/resources.jar:/opt/jdk1.8.0_65/jre/lib/rt.jar:/opt/jdk1.8.0_65/jre/lib/sunrsasign.jar:/opt/jdk1.8.0_65/jre/lib/jsse.jar:/opt/jdk1.8.0_65/jre/lib/jce.jar:/opt/jdk1.8.0_65/jre/lib/charsets.jar:/opt/jdk1.8.0_65/jre/lib/jfr.jar:/opt/jdk1.8.0_65/jre/classes java.awt.headless = true java.vendor = Oracle Corporation catalina.base = /tmp/tomcat.5444686089455506209.1111 file.separator = / java.vendor.url.bug = http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little sun.cpu.isalist = VM Flags: Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=130023424 -XX:MaxHeapSize=2059403264 -XX:MaxNewSize=686292992 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=42991616 -XX:OldSize=87031808 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC Command line:
- jmap -dump:[live,]format=b,file=<filename> 打印堆栈信息 堆栈信息可以使用jhat mat 等工具查看
jhat -J-Xmx8192m heapdump.06180803 http://localhost:7000/histo/
- jmap -heap pid 查看堆使用和分配情况汇总
Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 2059403264 (1964.0MB) NewSize = 42991616 (41.0MB) MaxNewSize = 686292992 (654.5MB) OldSize = 87031808 (83.0MB) NewRatio = 2 SurvivorRatio = 8 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 0 (0.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 494927872 (472.0MB) used = 451974752 (431.0367126464844MB) free = 42953120 (40.963287353515625MB) 91.32133742510263% used From Space: capacity = 2097152 (2.0MB) used = 1884176 (1.7968902587890625MB) free = 212976 (0.2031097412109375MB) 89.84451293945312% used To Space: capacity = 17301504 (16.5MB) used = 0 (0.0MB) free = 17301504 (16.5MB) 0.0% used PS Old Generation capacity = 118489088 (113.0MB) used = 48557704 (46.30823516845703MB) free = 69931384 (66.69176483154297MB) 40.98073908713012% used
- jstack pid 打印堆栈代码信息
"Eureka-DeltaRetentionTimer" #25 daemon prio=5 os_prio=0 tid=0x00007fe365015800 nid=0x8f8 in Object.wait() [0x00007fe3339fe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:552) - locked <0x0000000087a9c998> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:505) "container-0" #24 prio=5 os_prio=0 tid=0x00007fe364f49000 nid=0x8f7 waiting on condition [0x00007fe3381ba000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.apache.catalina.core.StandardServer.await(StandardServer.java:427) at org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:181) "ContainerBackgroundProcessor[StandardEngine[Tomcat]]" #23 daemon prio=5 os_prio=0 tid=0x00007fe365892000 nid=0x8f6 waiting on condition [0x00007fe3382bb000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1355) at java.lang.Thread.run(Thread.java:745) "SimplePauseDetectorThread_0" #22 daemon prio=9 os_prio=0 tid=0x00007fe2f40be800 nid=0x8f5 waiting on condition [0x00007fe3385bc000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at java.lang.Thread.sleep(Thread.java:340) at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386) at org.LatencyUtils.TimeServices.sleepNanos(TimeServices.java:62) at org.LatencyUtils.SimplePauseDetector$SimplePauseDetectorThread.run(SimplePauseDetector.java:116) "Thread-5" #21 daemon prio=9 os_prio=0 tid=0x00007fe2f40b0800 nid=0x8f4 waiting on condition [0x00007fe338e46000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000870a6980> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at org.LatencyUtils.PauseDetector$PauseDetectorThread.run(PauseDetector.java:85) "lettuce-eventExecutorLoop-1-1" #20 daemon prio=5 os_prio=0 tid=0x00007fe2e3178800 nid=0x8f3 waiting on condition [0x00007fe3393e5000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000869e9e30> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:251) at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:745) "spring.cloud.inetutils" #18 daemon prio=5 os_prio=0 tid=0x00007fe2e21bb800 nid=0x8f2 waiting on condition [0x00007fe339cea000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000869cf690> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) "Abandoned connection cleanup thread" #17 daemon prio=5 os_prio=0 tid=0x00007fe2e1efb000 nid=0x8f1 in Object.wait() [0x00007fe33aabc000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) - locked <0x0000000086aa44c8> (a java.lang.ref.ReferenceQueue$Lock) at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) "Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007fe36421b000 nid=0x8e7 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C1 CompilerThread3" #8 daemon prio=9 os_prio=0 tid=0x00007fe36420d800 nid=0x8e6 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x00007fe36420b800 nid=0x8e5 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007fe364209800 nid=0x8e4 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007fe364206800 nid=0x8e3 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007fe364205000 nid=0x8e2 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007fe3641cd000 nid=0x8e1 in Object.wait() [0x00007fe35094b000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) - locked <0x00000000854169d8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007fe3641cb000 nid=0x8e0 in Object.wait() [0x00007fe350a4c000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157) - locked <0x0000000085416a18> (a java.lang.ref.Reference$Lock)
- jstat -gcutil pid 打印gc 次数,耗时等信息汇总
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030 0.00 89.84 91.36 40.98 96.16 94.07 25 0.522 3 0.508 1.030
- jstat -gccapacity
jstat -gccapacity 8419 1000 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3 41984.0 670208.0 535552.0 14848.0 15360.0 480256.0 84992.0 1340928.0 116736.0 116736.0 0.0 1099776.0 59160.0 0.0 1048576.0 8112.0 14 3
- jstat -gc
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 14848.0 15360.0 0.0 0.0 480256.0 456800.9 116736.0 38351.7 59160.0 56807.9 8112.0 7611.7 14 0.257 3 0.338 0.595 14848.0 15360.0 0.0 0.0 480256.0 456800.9 116736.0 38351.7 59160.0 56807.9 8112.0 7611.7 14 0.257 3 0.338 0.595 14848.0 15360.0 0.0 0.0 480256.0 456800.9 116736.0 38351.7 59160.0 56807.9 8112.0 7611.7 14 0.257 3 0.338 0.595 14848.0 15360.0 0.0 0.0 480256.0 456800.9 116736.0 38351.7 59160.0 56807.9 8112.0 7611.7 14 0.257 3 0.338 0.595
- jmap -histo 23334 | head -20
num #instances #bytes class name ---------------------------------------------- 1: 152829 14760360 [C 2: 8213 10938736 [I 3: 232270 7432640 java.util.concurrent.locks.AbstractQueuedSynchronizer$Node 4: 7166 4934032 [B 5: 147563 4722016 java.util.HashMap$Node 6: 720 4397432 [J 7: 149411 3585864 java.lang.String 8: 48046 3515664 [Ljava.lang.Object; 9: 30158 2653904 java.lang.reflect.Method 10: 67788 2169216 java.util.concurrent.ConcurrentHashMap$Node 11: 12738 1894176 [Ljava.util.HashMap$Node; 12: 16726 1854192 java.lang.Class 13: 26914 1076560 java.util.LinkedHashMap$Entry 14: 37059 889416 java.util.ArrayList 15: 31471 755304 io.termd.core.term.Feature 16: 12676 709856 java.util.LinkedHashMap 17: 37628 602048 java.lang.Object