Linux-Manual

Java bin 目录下的工具

JVM 内存结构

运行时数据区(JVM 规范)

image.png

JDK8 真实内存结构(HotSpot)

image.png

JDK8 HotSpot 的堆内存区域结构

image.png

JVM内存区域的详解图

image.png

更多这类文章


频繁GC问题或内存溢出排查流程

死锁问题


jps

16470 Jps
12011 Bootstrap

jstat(重要)

垃圾回收统计

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392
34944.0 34944.0 1006.5  0.0   279616.0 235729.8  699072.0   12407.5   20736.0 20145.5 2560.0 2411.8      6    0.392   0      0.000    0.392

堆内存统计

 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0
349504.0 1398080.0 349504.0 34944.0 34944.0 279616.0   699072.0  2796224.0   699072.0   699072.0      0.0 1067008.0  20736.0      0.0 1048576.0   2560.0      6     0

gcutil

S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
0.00   0.00  67.63  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.68  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.71  38.09  78.03  68.82    124    0.966     5    0.778    1.744
0.00   0.00  67.71  38.09  78.03  68.82    124    0.966     5    0.778    1.744


jmap

Attaching to process ID 12011, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.151-b12

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 4294967296 (4096.0MB)
   NewSize                  = 357892096 (341.3125MB)
   MaxNewSize               = 1431633920 (1365.3125MB)
   OldSize                  = 715849728 (682.6875MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 322109440 (307.1875MB)
   used     = 242418024 (231.1878433227539MB)
   free     = 79691416 (75.9996566772461MB)
   75.2595217327378% used
Eden Space:
   capacity = 286326784 (273.0625MB)
   used     = 241387328 (230.20489501953125MB)
   free     = 44939456 (42.85760498046875MB)
   84.30483681191348% used
From Space:
   capacity = 35782656 (34.125MB)
   used     = 1030696 (0.9829483032226562MB)
   free     = 34751960 (33.142051696777344MB)
   2.88043458819826% used
To Space:
   capacity = 35782656 (34.125MB)
   used     = 0 (0.0MB)
   free     = 35782656 (34.125MB)
   0.0% used
tenured generation:
   capacity = 715849728 (682.6875MB)
   used     = 12705280 (12.11669921875MB)
   free     = 703144448 (670.57080078125MB)
   1.774852947908084% used

7067 interned Strings occupying 596016 bytes.
编号              个数          字节   类名
 508:             6            192  java.lang.invoke.LambdaForm$BasicType
 509:             8            192  java.lang.invoke.MethodHandleImpl$Intrinsic
 510:             8            192  java.math.RoundingMode
 511:             6            192  java.net.NetworkInterface$1checkedAddresses
 512:             6            192  java.rmi.server.UID
 513:             3            192  java.text.DateFormatSymbols
 514:             8            192  java.util.Formatter$FixedString
 515:             6            192  java.util.TreeMap$KeyIterator
 516:             8            192  java.util.regex.Pattern$Slice
 517:             8            192  jdk.net.SocketFlow$Status
 518:             6            192  net.sf.ehcache.DefaultElementEvictionData
 519:             3            192  net.sf.ehcache.store.chm.SelectableConcurrentHashMap
 520:             8            192  org.apache.logging.log4j.Level
 521:             8            192  org.apache.logging.log4j.core.appender.rolling.RolloverFrequency
 522:             4            192  org.apache.logging.log4j.core.impl.ThrowableProxy
 523:             3            192  org.apache.logging.log4j.core.layout.PatternLayout
 524:            12            192  org.apache.logging.log4j.core.util.datetime.FastDateParser$NumberStrategy
 525:             3            192  org.apache.logging.log4j.core.util.datetime.FixedDateFormat
 526:             8            192  org.apache.logging.log4j.spi.StandardLevel
 527:             2            192  sun.nio.ch.ServerSocketChannelImpl
 528:             4            192  sun.nio.cs.StreamEncoder
 529:             6            192  sun.reflect.generics.reflectiveObjects.TypeVariableImpl
 530:            11            176  java.text.NumberFormat$Field
 531:            11            176  java.util.concurrent.ConcurrentSkipListSet
 532:             2            176  javax.management.remote.rmi.NoCallStackClassLoader
 533:            11            176  org.apache.logging.log4j.core.lookup.MapLookup
 534:             8            168  [Ljava.lang.reflect.TypeVariable;
 535:             1            168  [[Ljava.math.BigInteger;

jstack(线程快照 – CPU 负载高)

2018-03-08 14:28:13
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode):

"Attach Listener" #53 daemon prio=9 os_prio=0 tid=0x00007f8a34009000 nid=0x865 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Log4j2-AsyncLoggerConfig-1" #16 daemon prio=5 os_prio=0 tid=0x00007f8a5c48d800 nid=0x2f0c waiting on condition [0x00007f8a4cbfe000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000007155e4850> (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 com.lmax.disruptor.BlockingWaitStrategy.waitFor(BlockingWaitStrategy.java:45)
	at com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
	at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:124)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

"Wrapper-Control-Event-Monitor" #13 daemon prio=5 os_prio=0 tid=0x00007f8a5c34e000 nid=0x2efc waiting on condition [0x00007f8a60314000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.tanukisoftware.wrapper.WrapperManager$3.run(WrapperManager.java:731)

"RMI TCP Accept-0" #11 daemon prio=5 os_prio=0 tid=0x00007f8a5c32f800 nid=0x2efa runnable [0x00007f8a60619000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at java.net.ServerSocket.accept(ServerSocket.java:513)
	at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
	at java.lang.Thread.run(Thread.java:748)

"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007f8a5c0b4800 nid=0x2ef3 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007f8a5c0b1800 nid=0x2ef2 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007f8a5c0af800 nid=0x2ef1 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f8a5c0aa800 nid=0x2ef0 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f8a5c07b000 nid=0x2eef in Object.wait() [0x00007f8a614f4000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000007155e5ba8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000007155e5ba8> (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)

"VM Thread" os_prio=0 tid=0x00007f8a5c06e800 nid=0x2eed runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x00007f8a5c332000 nid=0x2efb waiting on condition 

JNI global references: 281

资料