JVM工具

24 篇文章 0 订阅
  • 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

     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值