java虚拟机内存查看相关命令

关于cmd命令的重定向输出 :http://blog.csdn.net/jw72jw/article/details/7404255 
jstack和线程dump分析:http://jameswxx.iteye.com/blog/1041173 
Java自带的性能监测工具用法简介:http://blog.csdn.net/feihong247/article/details/7874063 
linux下查看虚拟机的状态:http://blog.sina.com.cn/s/blog_472b9eb20100nhy5.html 
JVM:查看java内存情况命令:http://www.cnblogs.com/zzck/archive/2016/07/26/5707168.html 
查看JAVA状态的命令主要有一下几种,jps,jinfo,jmap,jstack,jstat,jconsole,jVisualVM; 
jconsole,jVisualVM是界面化的工具,这里们就不讲了,用用就知道,注意与JDK的版本问题;下面我们来看以下几个命令jps(查看java进程),jinfo(查看JVM启动参数),jmap(查看堆内存状态),jstack(查看JVM线程运行状态),jstat(查看虚拟机垃圾回收状态)。 

jps:查看Java进程 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jps  
  2. 42548 JConsole  
  3. 10868 Jps  
  4. 29136 Bootstrap  
  5. 2692 org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar  
  6. 37412  



jinfo -flags:查看java进程参数参数 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jinfo -flags 2692  
  2. Attaching to process ID 2692, please wait...  
  3. Debugger attached successfully.  
  4. Server compiler detected.  
  5. JVM version is 23.7-b01  
  6.   
  7. -Dosgi.requiredJavaVersion=1.7 -Xms512m -Xmx1380m -Xss3m -XX:+UseParallelGC -Xverify:none  
  8.  -XX:+DisableExplicitGC -Xnoclassgc -XX:CMSInitiatingOccupancyFraction=85 -XX:ReservedCod  
  9. eCacheSize=256m -XX:MaxPermSize=256m  



jmap -heap:查看堆状况 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jmap -heap 2692  
  2. Attaching to process ID 2692, please wait...  
  3. Debugger attached successfully.  
  4. Server compiler detected.  
  5. JVM version is 23.7-b01  
  6.   
  7. using thread-local object allocation.  
  8. Parallel GC with 4 thread(s)  
  9.   
  10. Heap Configuration:  
  11.    MinHeapFreeRatio = 40  
  12.    MaxHeapFreeRatio = 70  
  13.    MaxHeapSize      = 1447034880 (1380.0MB) //最大堆空间  
  14.    NewSize          = 1310720 (1.25MB)  
  15.    MaxNewSize       = 17592186044415 MB  
  16.    OldSize          = 5439488 (5.1875MB)  
  17.    NewRatio         = 2  
  18.    SurvivorRatio    = 8  
  19.    PermSize         = 21757952 (20.75MB)  
  20.    MaxPermSize      = 268435456 (256.0MB)  
  21.    G1HeapRegionSize = 0 (0.0MB)  
  22.   
  23. Heap Usage:  
  24. PS Young Generation //年轻代  
  25. Eden Space:  
  26.    capacity = 387448832 (369.5MB)  
  27.    used     = 337520592 (321.8847198486328MB)  
  28.    free     = 49928240 (47.61528015136719MB)  
  29.    87.11359129868276% used  
  30. From Space:  
  31.    capacity = 47448064 (45.25MB)  
  32.    used     = 29189704 (27.83747100830078MB)  
  33.    free     = 18258360 (17.41252899169922MB)  
  34.    61.51927294652106% used  
  35. To Space:  
  36.    capacity = 47448064 (45.25MB)  
  37.    used     = 0 (0.0MB)  
  38.    free     = 47448064 (45.25MB)  
  39.    0.0% used  
  40. PS Old Generation //老年代  
  41.    capacity = 357957632 (341.375MB)  
  42.    used     = 217899800 (207.8054428100586MB)  
  43.    free     = 140057832 (133.5695571899414MB)  
  44.    60.873070028578134% used  
  45. PS Perm Generation //永久代  
  46.    capacity = 245891072 (234.5MB)  
  47.    used     = 122883168 (117.19052124023438MB)  
  48.    free     = 123007904 (117.30947875976562MB)  
  49.    49.974635923340884% used  
  50.   
  51. 39279 interned Strings occupying 3731248 bytes.  


jmap -dump:live,format=b,file=F:/heap.bin pid:dump java heap in hprof binary format 
导出堆二进制信息 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jmap -dump:live,format=b,file=heap.bin 29136  
  2. Dumping heap to heap.bin ...  
  3. Heap dump file created  


我们可以用MemoryAnalyzer分析文件,界面如下: 


8c7de339-4cd9-316b-9301-b0b38132c9b0.png

具体如何分析我们就不说,网上很多相关文章 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jps  
  2. 42548 JConsole  
  3. 30708 Jps  
  4. 29136 Bootstrap  
  5. 2692 org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar  
  6. 37412  



jmap -histo:live pid查看堆中活动的对象以及大小 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jmap -histo:live 29136 > jmap-histo.txt  




jmap-histo.txt的先关信息: 

Java代码 

 收藏代码

  1.  num     #instances         #bytes  class name  
  2. ----------------------------------------------  
  3.    1:        104389       15407704  <constMethodKlass>  
  4.    2:        105675       14934912  [C  
  5.    3:        104389       13377904  <methodKlass>  
  6.    4:         29296       11657864  [B  
  7.    5:          8286       10644280  <constantPoolKlass>  
  8.    6:          6968        6312896  <constantPoolCacheKlass>  
  9.    7:          8286        6266968  <instanceKlassKlass>  
  10.    8:        102853        2468472  java.lang.String  
  11.    9:          3293        1912896  <methodDataKlass>  
  12.   10:          9804        1328400  [I  
  13.   11:         15433        1234640  java.lang.reflect.Method  
  14.   12:         27893         892576  java.util.concurrent.ConcurrentHashMap$HashEntry  
  15.   13:          9045         892056  java.lang.Class  
  16.   14:           108         852304  [J  
  17.   15:         12221         851448  [S  
  18.   16:         18896         755840  java.util.LinkedHashMap$Entry  
  19.   17:         13262         748464  [[I  
  20.   18:         12725         624784  [Ljava.lang.Object;  
  21.   19:          5072         580528  [Ljava.util.HashMap$Entry;  
  22.   20:         17520         560640  java.util.HashMap$Entry  
  23.   21:          7618         487552  java.net.URL  
  24.   22:           742         403648  <objArrayKlassKlass>  
  25.   23:         12033         385056  java.lang.ref.WeakReference  
  26.   24:         14549         349176  java.util.ArrayList  
  27.   25:          5488         307328  java.util.LinkedHashMap  
  28.   26:          2225         298408  [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;  
  29.   27:          5571         267408  org.apache.catalina.loader.ResourceEntry  
  30.   28:          4921         236208  org.aspectj.weaver.reflect.ShadowMatchImpl  
  31.   29:          6530         208600  [Ljava.lang.String;  
  32.   30:         13015         208240  java.lang.Object  
  33.   31:          4923         196920  java.lang.ref.SoftReference  
  34.   32:          7706         164344  [Ljava.lang.Class;  
  35.   33:          5002         160064  java.util.Hashtable$Entry  
  36.   34:          4921         157472  org.aspectj.weaver.patterns.ExposedState  
  37.   35:          3236         155328  java.util.HashMap  
  38.   36:          5972         143328  java.beans.MethodRef  
  39.   37:          2034         113904  java.beans.MethodDescriptor  
  40.   38:          2334         112032  org.springframework.util.ConcurrentReferenceHashMap$SoftEntryReference  
  41.   39:          1010          96960  org.springframework.beans.GenericTypeAwarePropertyDescriptor  
  42.   40:          5285          94912  [Z  
  43.   41:          3938          94512  java.util.Collections$UnmodifiableRandomAccessList  
  44.   42:          1269          91368  java.lang.reflect.Constructor  
  45.   43:          2225          89000  java.util.concurrent.ConcurrentHashMap$Segment  
  46.   44:           981          86328  org.apache.ibatis.mapping.MappedStatement  
  47.   45:          2570          82240  java.util.LinkedList  
  48.   46:          2513          80416  java.util.concurrent.locks.ReentrantLock$NonfairSync  
  49.   47:          4921          78736  [Lorg.aspectj.weaver.ast.Var;  
  50.   48:          1025          73800  org.apache.jasper.compiler.Node$TemplateText  
  51.   49:           957          68904  java.beans.PropertyDescriptor  
  52.   50:           473          68112  org.aspectj.weaver.ReferenceType  
  53.   51:          1179          66024  org.apache.jasper.compiler.Mark  
  54.   52:           506          65504  [Ljava.util.Hashtable$Entry;  
  55.   53:           111          63288  [Ljava.util.WeakHashMap$Entry;  
  56.   54:          3734          59744  org.apache.ibatis.scripting.xmltags.TextSqlNode  
  57.   55:          1816          58112  com.kingbase.util.Oid  
  58.   56:          1441          57640  java.util.WeakHashMap$Entry  
  59.   57:           784          56448  java.lang.reflect.Field  
  60.   58:           940          52640  org.springframework.core.annotation.AnnotationAttributes  
  61.   59:           804          51456  com.kingbase.core.Field  
  62.   60:          1251          50040  org.apache.log4j.Logger  
  63.   61:          2027          48648  java.util.LinkedList$Node  
  64.   62:           304          48640  org.aspectj.weaver.BoundedReferenceType  
  65.   63:           598          46832  [Ljava.util.concurrent.ConcurrentHashMap$Segment;  
  66.   64:          1128          45120  java.util.TreeMap$Entry  
  67.   65:          1841          44184  org.springframework.cglib.core.Signature  
  68.   66:           898          43104  org.apache.tomcat.util.modeler.AttributeInfo  
  69.   67:          1201          38432  java.util.Stack  
  70.   68:          1559          37416  org.apache.log4j.CategoryKey  
  71.   69:          2324          37184  java.util.LinkedHashSet  
  72.   70:          2168          34688  java.util.HashMap$KeySet  
  73.   71:          2069          33104  org.apache.ibatis.scripting.xmltags.MixedSqlNode  
  74.   72:           687          32976  org.apache.tomcat.util.buf.ByteChunk  
  75.   73:           575          32200  java.lang.Package  
  76.   74:           639          30672  java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync  
  77.   75:           221          30624  [[C  
  78.   76:           195          29640  org.springframework.beans.factory.support.RootBeanDefinition  
  79.   77:           598          28704  java.util.concurrent.ConcurrentHashMap  
  80.   78:           137          28496  com.kingbase.jdbc4.Jdbc4Statement  
  81.   79:           885          28320  org.springframework.cglib.proxy.MethodProxy  
  82.   80:          1738          27808  java.util.Collections$UnmodifiableSet  
  83.   81:           863          27616  org.springframework.cglib.proxy.MethodProxy$CreateInfo  
  84.   82:           143          27456  com.kingbase.jdbc4.Jdbc4ResultSet  
  85.   83:            13          26832  [Lorg.apache.ibatis.ognl.OgnlRuntime$ClassCache$Entry;  
  86.   84:           552          26496  org.apache.tomcat.util.buf.MessageBytes  
  87.   85:           222          26448  [Ljava.beans.MethodDescriptor;  
  88.   86:          1074          25776  org.slf4j.impl.Log4jLoggerAdapter  
  89.   87:           447          25032  org.apache.ibatis.mapping.ResultMap  
  90.   88:           602          24080  org.apache.tomcat.util.buf.CharChunk  
  91.   89:           981          23544  org.apache.ibatis.scripting.xmltags.DynamicSqlSource  
  92.   90:           981          23544  org.apache.ibatis.mapping.ParameterMap  
  93.   91:          1461          23376  java.util.HashSet  
  94.   92:           724          23168  javax.management.MBeanAttributeInfo  
  95.   93:           964          23136  org.apache.ibatis.scripting.xmltags.IfSqlNode  
  96.   94:           453          21744  java.util.Hashtable  
  97. ...  
  98. ...n  
  99. 416:             1             16  org.springframework.aop.support.annotation.AnnotationMethodMatcher  
  100. 3417:             1             16  java.util.ResourceBundle$Control  
  101. 3418:             1             16  sun.reflect.GeneratedMethodAccessor38  
  102. 3419:             1             16  [Lcom.sun.org.apache.xerces.internal.impl.xs.SubstitutionGroupHandler$OneSubGroup;  
  103. 3420:             1             16  sun.nio.ch.Util$1  
  104. 3421:             1             16  org.springframework.web.servlet.FrameworkServlet$ContextRefreshListener  
  105. 3422:             1             16  org.apache.ibatis.ognl.ObjectPropertyAccessor  
  106. 3423:             1             16  sun.reflect.GeneratedMethodAccessor8  
  107. 3424:             1             16  com.sun.org.apache.xerces.internal.impl.dv.xs.IntegerDV  
  108. 3425:             1             16  sun.reflect.GeneratedMethodAccessor30  
  109. 3426:             1             16  org.springframework.beans.factory.parsing.FailFastProblemReporter  
  110. 3427:             1             16  org.aspectj.util.FuzzyBoolean$NeverFuzzyBoolean  
  111. 3428:             1             16  org.apache.catalina.connector.Request$5  
  112. 3429:             1             16  org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration$1  
  113. 3430:             1             16  com.fh.cachedb.CodeTableHolder  
  114. 3431:             1             16  sun.reflect.GeneratedConstructorAccessor47  
  115. 3432:             1             16  java.lang.String$CaseInsensitiveComparator  
  116. 3433:             1             16  sun.reflect.GeneratedConstructorAccessor42  
  117. 3434:             1             16  sun.reflect.GeneratedConstructorAccessor38  
  118. Total        946918      105239816  

 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jps  
  2. 42548 JConsole  
  3. 30708 Jps  
  4. 29136 Bootstrap  
  5. 2692 org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar  
  6. 37412  



jstack pid :查看jvm线程运行状态,是否有死锁现象等等信息) 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstack 29136 > jstack.txt  


jstack.txt先关内容: 

Java代码 

 收藏代码

  1. 2017-02-23 18:44:50  
  2. Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode):  
  3.   
  4. "Attach Listener" daemon prio=10 tid=0x0000000000705800 nid=0x5e66 runnable [0x0000000000000000]  
  5.    java.lang.Thread.State: RUNNABLE  
  6. //线程池中的线程3正在运行  
  7. "pool-2-thread-3" prio=10 tid=0x0000000000867800 nid=0x5e04 runnable [0x00007fce9710f000]  
  8.    java.lang.Thread.State: RUNNABLE  
  9.     at java.util.HashMap.createEntry(HashMap.java:897)  
  10.     at java.util.HashMap.addEntry(HashMap.java:884)  
  11.     at java.util.HashMap.put(HashMap.java:505)  
  12.     at com.fh.util.PageData.put(PageData.java:73)  
  13.     at com.fh.util.network.SqlTypeUtil.getCityData(SqlTypeUtil.java:37)  
  14.     at com.fh.thread.CityDataToUpdateCallble.call(CityDataToUpdateCallble.java:109)  
  15.     at com.fh.thread.CityDataToUpdateCallble.call(CityDataToUpdateCallble.java:1)  
  16.     at java.util.concurrent.FutureTask.run(FutureTask.java:262)  
  17.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
  18.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  19.     at java.lang.Thread.run(Thread.java:745)  
  20. //线程池中线程2,正在运行,在等待waiting on condition  [0x00007fce97210000]  
  21. "pool-2-thread-2" prio=10 tid=0x0000000000855000 nid=0x5e01 waiting on condition [0x00007fce97210000]  
  22.    java.lang.Thread.State: RUNNABLE  
  23.     at com.fh.util.network.SqlTypeUtil.getCityData(SqlTypeUtil.java:35)  
  24.     at com.fh.thread.CityDataToUpdateCallble.call(CityDataToUpdateCallble.java:109)  
  25.     at com.fh.thread.CityDataToUpdateCallble.call(CityDataToUpdateCallble.java:1)  
  26.     at java.util.concurrent.FutureTask.run(FutureTask.java:262)  
  27.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
  28.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  29.     at java.lang.Thread.run(Thread.java:745)  
  30. //tomcat bio 线程处于等待状态waiting on condition [0x00007fce960f1000]  
  31. "http-bio-8080-exec-10" daemon prio=10 tid=0x0000000000713000 nid=0x5dff waiting on condition [0x00007fce960f1000]  
  32.    java.lang.Thread.State: WAITING (parking)  
  33.     at sun.misc.Unsafe.park(Native Method)  
  34.     - parking to wait for  <0x00000000c71fe5e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
  35.     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)  
  36.     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)  
  37.     at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)  
  38.     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)  
  39.     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)  
  40.     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)  
  41.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)  
  42.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  43.     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  
  44.     at java.lang.Thread.run(Thread.java:745)  
  45.     ...  
  46. "http-bio-8080-exec-1" daemon prio=10 tid=0x0000000000997800 nid=0x5df5 waiting on condition [0x00007fce9e05c000]  
  47.    java.lang.Thread.State: WAITING (parking)  
  48.     at sun.misc.Unsafe.park(Native Method)  
  49.     - parking to wait for  <0x00000000c71fe5e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
  50.     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)  
  51.     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)  
  52.     at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)  
  53.     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)  
  54.     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)  
  55.     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)  
  56.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)  
  57.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  58.     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  
  59.     at java.lang.Thread.run(Thread.java:745)  
  60. //线程Java2D Disposer处于等待状态:in Object.wait() [0x00007fce976b9000]  
  61.     "Java2D Disposer" daemon prio=10 tid=0x0000000000e0f000 nid=0x5df8 in Object.wait() [0x00007fce976b9000]  
  62.    java.lang.Thread.State: WAITING (on object monitor)  
  63.     at java.lang.Object.wait(Native Method)  
  64.     - waiting on <0x00000000c758fa40> (a java.lang.ref.ReferenceQueue$Lock)  
  65.     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)  
  66.     - locked <0x00000000c758fa40> (a java.lang.ref.ReferenceQueue$Lock)  
  67.     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)  
  68.     at sun.java2d.Disposer.run(Disposer.java:145)  
  69.     at java.lang.Thread.run(Thread.java:745)  
  70.   
  71.     "ajp-bio-8009-Acceptor-0" daemon prio=10 tid=0x00007fce904a8000 nid=0x5df3 runnable [0x00007fce9c162000]  
  72.    java.lang.Thread.State: RUNNABLE  
  73.     at java.net.PlainSocketImpl.socketAccept(Native Method)  
  74.     at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)  
  75.     at java.net.ServerSocket.implAccept(ServerSocket.java:530)  
  76.     at java.net.ServerSocket.accept(ServerSocket.java:498)  
  77.     at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)  
  78.     at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:222)  
  79.     at java.lang.Thread.run(Thread.java:745)  
  80. //处于睡眠状态  
  81. "http-bio-8080-AsyncTimeout" daemon prio=10 tid=0x00007fce90793000 nid=0x5df2 sleeping[0x00007fce9dc58000]  
  82.    java.lang.Thread.State: TIMED_WAITING (sleeping)  
  83.     at java.lang.Thread.sleep(Native Method)  
  84.     at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:152)  
  85.     at java.lang.Thread.run(Thread.java:745)  
  86.   
  87. "http-bio-8080-Acceptor-0" daemon prio=10 tid=0x0000000000810000 nid=0x5df1 runnable [0x00007fce9dd59000]  
  88.    java.lang.Thread.State: RUNNABLE  
  89.     at java.net.PlainSocketImpl.socketAccept(Native Method)  
  90.     at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)  
  91.     at java.net.ServerSocket.implAccept(ServerSocket.java:530)  
  92.     at java.net.ServerSocket.accept(ServerSocket.java:498)  
  93.     at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)  
  94.     at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:222)  
  95.     at java.lang.Thread.run(Thread.java:745)  
  96.   
  97. "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=10 tid=0x0000000001ec3800 nid=0x5df0 runnable [0x00007fce9de5a000]  
  98.    java.lang.Thread.State: RUNNABLE  
  99.     at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)  
  100.     at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)  
  101.     at java.io.File.isDirectory(File.java:843)  
  102.     at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1151)  
  103.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:497)  
  104.     at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1757)  
  105.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:333)  
  106.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)  
  107.     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)  
  108.     at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1370)  
  109.     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1542)  
  110.     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1552)  
  111.     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1520)  
  112.     at java.lang.Thread.run(Thread.java:745)  
  113. //Druid线程池处理睡眠,等待waiting on condition [0x00007fce9c263000]  
  114. "Druid-ConnectionPool-Destroy-1086652952" daemon prio=10 tid=0x00007fce904ef800 nid=0x5def waiting on condition [0x00007fce9c263000]  
  115.    java.lang.Thread.State: TIMED_WAITING (sleeping)  
  116.     at java.lang.Thread.sleep(Native Method)  
  117.     at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:1898)  
  118.   
  119. "Druid-ConnectionPool-Create-1086652952" daemon prio=10 tid=0x00007fce90015800 nid=0x5dee waiting on condition [0x00007fce9c364000]  
  120.    java.lang.Thread.State: WAITING (parking)  
  121.     at sun.misc.Unsafe.park(Native Method)  
  122.     - parking to wait for  <0x00000000c633d178> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
  123.     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)  
  124.     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)  
  125.     at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1824)  
  126.   
  127.   
  128. "%0055ser%0058%004dapper.data" prio=10 tid=0x00007fce904cf800 nid=0x5dec waiting on condition [0x00007fce9c882000]  
  129.    java.lang.Thread.State: TIMED_WAITING (parking)  
  130.     at sun.misc.Unsafe.park(Native Method)  
  131.     - parking to wait for  <0x00000000c6196fe8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
  132.     at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)  
  133.     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)  
  134.     at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)  
  135.     at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)  
  136.     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)  
  137.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)  
  138.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  139.     at java.lang.Thread.run(Thread.java:745)  
  140.   
  141. "net.sf.ehcache.CacheManager@1c2ae2cd" daemon prio=10 tid=0x00007fce904bf800 nid=0x5dea in Object.wait() [0x00007fce9c983000]  
  142.    java.lang.Thread.State: WAITING (on object monitor)  
  143.     at java.lang.Object.wait(Native Method)  
  144.     - waiting on <0x00000000c61bed80> (a java.util.TaskQueue)  
  145.     at java.lang.Object.wait(Object.java:503)  
  146.     at java.util.TimerThread.mainLoop(Timer.java:526)  
  147.     - locked <0x00000000c61bed80> (a java.util.TaskQueue)  
  148.     at java.util.TimerThread.run(Timer.java:505)  
  149.   
  150. "Druid-ConnectionPool-Destroy-1795695054" daemon prio=10 tid=0x00007fce904b7000 nid=0x5de9 waiting on condition [0x00007fce9ccc2000]  
  151.    java.lang.Thread.State: TIMED_WAITING (sleeping)  
  152.     at java.lang.Thread.sleep(Native Method)  
  153.     at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:1898)  
  154.   
  155. "Druid-ConnectionPool-Create-1795695054" daemon prio=10 tid=0x00007fce90537800 nid=0x5de8 waiting on condition [0x00007fce9cdc3000]  
  156.    java.lang.Thread.State: WAITING (parking)  
  157.     at sun.misc.Unsafe.park(Native Method)  
  158.     - parking to wait for  <0x00000000c627f1d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
  159.     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)  
  160.     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)  
  161.     at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1824)  
  162.   
  163. "Abandoned connection cleanup thread" daemon prio=10 tid=0x00007fce90419000 nid=0x5de6 in Object.wait() [0x00007fce9cec4000]  
  164.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  165.     at java.lang.Object.wait(Native Method)  
  166.     - waiting on <0x00000000c627f208> (a java.lang.ref.ReferenceQueue$Lock)  
  167.     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)  
  168.     - locked <0x00000000c627f208> (a java.lang.ref.ReferenceQueue$Lock)  
  169.     at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)  
  170.   
  171. "Timer-0" daemon prio=10 tid=0x00007fce90351800 nid=0x5de5 in Object.wait() [0x00007fce9cfc5000]  
  172.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  173.     at java.lang.Object.wait(Native Method)  
  174.     - waiting on <0x00000000c627f2a8> (a java.util.TaskQueue)  
  175.     at java.util.TimerThread.mainLoop(Timer.java:552)  
  176.     - locked <0x00000000c627f2a8> (a java.util.TaskQueue)  
  177.     at java.util.TimerThread.run(Timer.java:505)  
  178. //定时任务调度线程,初始化10个线程,  
  179. "schedulerFactoryBean_QuartzSchedulerThread" prio=10 tid=0x00007fce9034c000 nid=0x5de4 runnable [0x00007fce9d0c6000]  
  180.    java.lang.Thread.State: RUNNABLE  
  181.     at org.quartz.utils.Key.compareTo(Key.java:152)  
  182.     at org.quartz.Trigger$TriggerTimeComparator.compare(Trigger.java:321)  
  183.     at org.quartz.Trigger$TriggerTimeComparator.compare(Trigger.java:326)  
  184.     at org.quartz.simpl.TriggerWrapperComparator.compare(RAMJobStore.java:1705)  
  185.     at org.quartz.simpl.TriggerWrapperComparator.compare(RAMJobStore.java:1698)  
  186.     at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:369)  
  187.     at java.util.TreeMap.getEntry(TreeMap.java:340)  
  188.     at java.util.TreeMap.remove(TreeMap.java:595)  
  189.     at java.util.TreeSet.remove(TreeSet.java:276)  
  190.     at org.quartz.simpl.RAMJobStore.acquireNextTriggers(RAMJobStore.java:1403)  
  191.     - locked <0x00000000c62cd9e8> (a java.lang.Object)  
  192.     at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:272)  
  193. //RUNNABLE  
  194. "schedulerFactoryBean_Worker-10" prio=10 tid=0x00007fce90348000 nid=0x5de3 runnable [0x00007fce9d1c7000]  
  195.    java.lang.Thread.State: RUNNABLE  
  196.     at java.lang.Object.wait(Native Method)  
  197.     - waiting on <0x00000000c627f420> (a java.lang.Object)  
  198.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  199.     - locked <0x00000000c627f420> (a java.lang.Object)  
  200. //TIMED_WAITING  
  201. "schedulerFactoryBean_Worker-9" prio=10 tid=0x00007fce90346800 nid=0x5de2 in Object.wait() [0x00007fce9d2c8000]  
  202.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  203.     at java.lang.Object.wait(Native Method)  
  204.     - waiting on <0x00000000c627f4b0> (a java.lang.Object)  
  205.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  206.     - locked <0x00000000c627f4b0> (a java.lang.Object)  
  207. //RUNNABLE  
  208. "schedulerFactoryBean_Worker-8" prio=10 tid=0x00007fce90335800 nid=0x5de1 runnable [0x00007fce9d3c9000]  
  209.    java.lang.Thread.State: RUNNABLE  
  210.     at java.lang.Object.wait(Native Method)  
  211.     - waiting on <0x00000000c627f540> (a java.lang.Object)  
  212.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  213.     - locked <0x00000000c627f540> (a java.lang.Object)  
  214. //TIMED_WAITING  
  215. "schedulerFactoryBean_Worker-7" prio=10 tid=0x00007fce90333800 nid=0x5de0 in Object.wait() [0x00007fce9d4ca000]  
  216.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  217.     at java.lang.Object.wait(Native Method)  
  218.     - waiting on <0x00000000c627f5d0> (a java.lang.Object)  
  219.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  220.     - locked <0x00000000c627f5d0> (a java.lang.Object)  
  221. //TIMED_WAITING  
  222. "schedulerFactoryBean_Worker-6" prio=10 tid=0x00007fce90331800 nid=0x5ddf in Object.wait() [0x00007fce9d5cb000]  
  223.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  224.     at java.lang.Object.wait(Native Method)  
  225.     - waiting on <0x00000000c627f660> (a java.lang.Object)  
  226.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  227.     - locked <0x00000000c627f660> (a java.lang.Object)  
  228. //TIMED_WAITING  
  229. "schedulerFactoryBean_Worker-5" prio=10 tid=0x00007fce90330000 nid=0x5dde in Object.wait() [0x00007fce9d6cc000]  
  230.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  231.     at java.lang.Object.wait(Native Method)  
  232.     - waiting on <0x00000000c62804c0> (a java.lang.Object)  
  233.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  234.     - locked <0x00000000c62804c0> (a java.lang.Object)  
  235. //TIMED_WAITING  
  236. "schedulerFactoryBean_Worker-4" prio=10 tid=0x00007fce9032e000 nid=0x5ddd in Object.wait() [0x00007fce9d7cd000]  
  237.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  238.     at java.lang.Object.wait(Native Method)  
  239.     - waiting on <0x00000000c62802f0> (a java.lang.Object)  
  240.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  241.     - locked <0x00000000c62802f0> (a java.lang.Object)  
  242. //TIMED_WAITING  
  243. "schedulerFactoryBean_Worker-3" prio=10 tid=0x00007fce9032c800 nid=0x5ddc in Object.wait() [0x00007fce9d8ce000]  
  244.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  245.     at java.lang.Object.wait(Native Method)  
  246.     - waiting on <0x00000000c6280120> (a java.lang.Object)  
  247.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  248.     - locked <0x00000000c6280120> (a java.lang.Object)  
  249. //TIMED_WAITING  
  250. "schedulerFactoryBean_Worker-2" prio=10 tid=0x00007fce9032b000 nid=0x5ddb in Object.wait() [0x00007fce9d9cf000]  
  251.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  252.     at java.lang.Object.wait(Native Method)  
  253.     - waiting on <0x00000000c627ff50> (a java.lang.Object)  
  254.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  255.     - locked <0x00000000c627ff50> (a java.lang.Object)  
  256. //RUNNABLE  
  257. "schedulerFactoryBean_Worker-1" prio=10 tid=0x00007fce90327000 nid=0x5dda runnable [0x00007fce9dad0000]  
  258.    java.lang.Thread.State: RUNNABLE  
  259.     at java.lang.Object.wait(Native Method)  
  260.     - waiting on <0x00000000c627fd80> (a java.lang.Object)  
  261.     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)  
  262.     - locked <0x00000000c627fd80> (a java.lang.Object)  
  263.   
  264. //GC  
  265. "GC Daemon" daemon prio=10 tid=0x00000000008a1000 nid=0x5dd7 in Object.wait() [0x00007fce9e5f6000]  
  266.    java.lang.Thread.State: TIMED_WAITING (on object monitor)  
  267.     at java.lang.Object.wait(Native Method)  
  268.     - waiting on <0x00000000c5628bf0> (a sun.misc.GC$LatencyLock)  
  269.     at sun.misc.GC$Daemon.run(GC.java:117)  
  270.     - locked <0x00000000c5628bf0> (a sun.misc.GC$LatencyLock)  
  271.   
  272. "Service Thread" daemon prio=10 tid=0x00007fce98035800 nid=0x5dd5 runnable [0x0000000000000000]  
  273.    java.lang.Thread.State: RUNNABLE  
  274. //编译线程  
  275. "C2 CompilerThread1" daemon prio=10 tid=0x00007fce98033000 nid=0x5dd4 waiting on condition [0x0000000000000000]  
  276.    java.lang.Thread.State: RUNNABLE  
  277.   
  278. "C2 CompilerThread0" daemon prio=10 tid=0x00007fce98030000 nid=0x5dd3 waiting on condition [0x0000000000000000]  
  279.    java.lang.Thread.State: RUNNABLE  
  280.   
  281. "Signal Dispatcher" daemon prio=10 tid=0x00007fce9802d800 nid=0x5dd2 runnable [0x0000000000000000]  
  282.    java.lang.Thread.State: RUNNABLE  
  283.   
  284. "Finalizer" daemon prio=10 tid=0x00007fce98001000 nid=0x5dd1 in Object.wait() [0x00007fce9f41e000]  
  285.    java.lang.Thread.State: WAITING (on object monitor)  
  286.     at java.lang.Object.wait(Native Method)  
  287.     - waiting on <0x00000000c5842558> (a java.lang.ref.ReferenceQueue$Lock)  
  288.     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)  
  289.     - locked <0x00000000c5842558> (a java.lang.ref.ReferenceQueue$Lock)  
  290.     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)  
  291.     at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)  
  292.   
  293. "Reference Handler" daemon prio=10 tid=0x0000000000677800 nid=0x5dd0 in Object.wait() [0x00007fce9f51f000]  
  294.    java.lang.Thread.State: WAITING (on object monitor)  
  295.     at java.lang.Object.wait(Native Method)  
  296.     - waiting on <0x00000000c56a9438> (a java.lang.ref.Reference$Lock)  
  297.     at java.lang.Object.wait(Object.java:503)  
  298.     at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)  
  299.     - locked <0x00000000c56a9438> (a java.lang.ref.Reference$Lock)  
  300. //主线程  
  301. "main" prio=10 tid=0x000000000060a800 nid=0x5dc6 runnable [0x00007fcea9817000]  
  302.    java.lang.Thread.State: RUNNABLE  
  303.     at java.net.PlainSocketImpl.socketAccept(Native Method)  
  304.     at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)  
  305.     at java.net.ServerSocket.implAccept(ServerSocket.java:530)  
  306.     at java.net.ServerSocket.accept(ServerSocket.java:498)  
  307.     at org.apache.catalina.core.StandardServer.await(StandardServer.java:470)  
  308.     at org.apache.catalina.startup.Catalina.await(Catalina.java:781)  
  309.     at org.apache.catalina.startup.Catalina.start(Catalina.java:727)  
  310.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  311.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
  312.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  313.     at java.lang.reflect.Method.invoke(Method.java:606)  
  314.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)  
  315.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)  
  316. //虚拟机线程  
  317. "VM Thread" prio=10 tid=0x0000000000673000 nid=0x5dcf runnable   
  318. //GC任务线程  
  319. "GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000000620800 nid=0x5dc7 runnable   
  320.   
  321. "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000000622800 nid=0x5dc8 runnable   
  322.   
  323. "GC task thread#2 (ParallelGC)" prio=10 tid=0x0000000000624000 nid=0x5dc9 runnable   
  324.   
  325. "GC task thread#3 (ParallelGC)" prio=10 tid=0x0000000000626000 nid=0x5dca runnable   
  326.   
  327. "GC task thread#4 (ParallelGC)" prio=10 tid=0x0000000000628000 nid=0x5dcb runnable   
  328.   
  329. "GC task thread#5 (ParallelGC)" prio=10 tid=0x0000000000629800 nid=0x5dcc runnable   
  330.   
  331. "GC task thread#6 (ParallelGC)" prio=10 tid=0x000000000062b800 nid=0x5dcd runnable   
  332.   
  333. "GC task thread#7 (ParallelGC)" prio=10 tid=0x000000000062d800 nid=0x5dce runnable   
  334.   
  335. "VM Periodic Task Thread" prio=10 tid=0x00007fce98040800 nid=0x5dd6 waiting on condition   
  336.   
  337. JNI global references: 478  




jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gc 29136  
  2.  S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT  
  3. 4288.0 4288.0 1639.1  0.0   34688.0  33781.3   86336.0    45491.6   83968.0 59198.3     96    0.521   6      0.714    1.235  


其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。 

jstat -util pid:统计gc信息统计与-gc合用。 

jstat -gcutil PID 1000(刷新频率) 3(次数):查看jvm的gc情况和内存使用情况 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7> jstat -gcutil 29136 1000 3  
  2.   S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT  
  3.   0.00  35.42  55.86  50.93  70.10     87    0.491     6    0.714    1.205  
  4.   0.00  35.42  57.56  50.93  70.10     87    0.491     6    0.714    1.205  
  5.   0.00  35.42  58.04  50.93  70.10     87    0.491     6    0.714    1.205  



S0:Heap上的 Survivor space 0 段已使用空间的百分比 
S1:Heap上的 Survivor space 1 段已使用空间的百分比 
E: Heap上的 Eden space 段已使用空间的百分比 
O:Heap上的 Old space 段已使用空间的百分比 
P: Perm space 已使用空间的百分比 
YGC:从程序启动到采样时发生Young GC的次数 
YGCT:Young GC所用的时间(单位秒) 
FGC:从程序启动到采样时发生Full GC的次数 
FGCT:Full GC所用的时间(单位秒) 
GCT:用于垃圾回收的总时间(单位秒) 





jstat -class pid:显示加载class的数量,及所占空间等信息 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -class 29136  
  2. Loaded  Bytes  Unloaded  Bytes     Time  
  3.   8735 18805.4       85   137.6       7.86  




jstat -compiler pid:显示VM实时编译的数量等信息。 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -compiler 29136  
  2. Compiled Failed Invalid   Time   FailedType FailedMethod  
  3.     2093      1       0    24.51          1 org/apache/catalina/loader/WebappClassLoaderBase findResourceInternal  




jstat -gccapacity pid:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小, 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gccapacity 29136  
  2.  NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC      PGCMN    PGCMX     PGC       PC     YGC    FGC  
  3.   
  4.  43136.0 340736.0  43264.0 4288.0 4288.0  34688.0    86336.0  1731840.0    86336.0    86336.0  21248.0  83968.0  83968.0  83968.0     98     6  



如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量, 
PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。 

jstat -gcnew pid:new对象的信息。 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gcnew 29136  
  2.  S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
  3. 4288.0 4288.0    0.0 3512.2  6   6 2144.0  34688.0  28683.1    101    0.553  




jstat -gcnewcapacity pid:new对象的信息及其占用量。 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gcnewcapacity 29136  
  2.   NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC  
  3.    43136.0   340736.0    43264.0  34048.0   4288.0  34048.0   4288.0   272640.0    34688.0   102     6  



jstat -gcold pid:old对象的信息。 
 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gcold 29136  
  2.    PC       PU        OC          OU       YGC    FGC    FGCT     GCT  
  3.  83968.0  59291.3     86336.0     50136.9    102     6    0.714    1.270  



jstat -gcoldcapacity pid:old对象的信息及其占用量。 

 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gcoldcapacity 29136  
  2.    OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT  
  3.     86336.0   1731840.0     86336.0     86336.0   102     6    0.714    1.270  




jstat -gcpermcapacity pid: perm对象的信息及其占用量。 

 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -gcpermcapacity 29136  
  2.   PGCMN      PGCMX       PGC         PC      YGC   FGC    FGCT     GCT  
  3.    21248.0    83968.0    83968.0    83968.0   103     6    0.714    1.272  






jstat -printcompilation pid:当前VM执行的信息 

 

Java代码 

 收藏代码

  1. Donald_Draper@Centos7>jstat -printcompilation 29136  
  2. Compiled  Size  Type Method  
  3.     2162    141    1 com/kingbase/core/KB_Stream_Tcpip Receive  




查看虚拟机状态用到的几个重要命令 
jps 
jinfo -flags 2692 
jmap -heap 2692 
jmap -dump:live,format=b,file=heap.bin 29136 
jmap -histo:live 29136 > jmap-histo.txt 
jstack 29136 > jstack.txt 
jstat -gcutil 29136 1000 3 

转载于:https://my.oschina.net/pvpCC9IFwqz4/blog/845260

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值