• JVM 学习笔记记录


    JVM 学习笔记记录

    Sun JDK 监控和故障处理工具

    名称 主要作用
    jps JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程
    jstat JVM Statistics Moitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
    jinfo Configuration info for java,显示虚拟机配置信息
    jmap Memory Map for java,生成虚拟机的内存转储快照(heapdump文件)
    jhat JVM Heap Dump Browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
    jstack Stack Trace for java,显示虚拟机的线程快照

    常用命令:

    1. jps -l 查询LVMID,及主类的名称
    
        C:UsersHarry>jps -l
        11856 com.ssm.common.jvm.JvmTest
        14368 com.ddc.template.TemplateApplication
        16848
        19664
        6640 org.jetbrains.jps.cmdline.Launcher
        7732 sun.tools.jps.Jps
        2168 org.apache.zookeeper.server.quorum.QuorumPeerMain
    
    2. jps -v 输出虚拟机进程参数
    
        C:UsersHarry>jps -v
        11856 JvmTest -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:49232 -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -Dfile.encoding=utf8
        
    3. jstat -gc 11856 250 5 每250毫秒查询一次进程11856垃圾收集情况状况,一共查询5次
    
        C:UsersHarry>jstat -gc 11856 250 20
         S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
        
    4. jstat -gc 11856 只查询一次
    
        C:UsersHarry>jstat -gc 11856
         S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
        1024.0 1024.0  0.0    0.0    8192.0   7619.8   10240.0      0.0     4480.0 780.5  384.0   75.8       0    0.000   0      0.000    0.000
    
    5. jstat -gcutil 11856 查询各JVM内存使用百分比
       
        C:UsersHarry>jstat -gcutil 11856
          S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
          0.00   0.00  93.01   0.00  17.42  19.75      0    0.000     0    0.000    0.000
    
    6. jstat -gcnew 11856 查询新生代GC状况
       
        C:UsersHarry>jstat -gcnew 11856
         S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
        1024.0 1024.0    0.0    0.0 15  15    0.0   8192.0   7619.8      0    0.000
    
    7. jstat -gcold 11856 查询老年代GC状况
       
        C:UsersHarry>jstat -gcold 11856
           MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
          4480.0    780.5    384.0     75.8     10240.0         0.0      0     0    0.000    0.000
    
    8. jinfo -flag CMSInitiatingOccupancyFraction 11856 查询JVM参数的值
        
        C:UsersHarry>jinfo -flag CMSInitiatingOccupancyFraction 11856
        -XX:CMSInitiatingOccupancyFraction=-1
    
    9. jinfo -sysprops 11856 
    
    可以把System.getProperties()信息打印出来
        C:UsersHarry>jinfo -sysprops 11856
        Attaching to process ID 11856, please wait...
        Debugger attached successfully.
        Server compiler detected.
        JVM version is 25.92-b14
        java.runtime.name = Java(TM) SE Runtime Environment
        java.vm.version = 25.92-b14
        ......
    
    10. jmap -dump:format=b,file=eclipse.bin 11856 生成java堆转储快照
        
        C:UsersHarry>jmap -dump:format=b,file=eclipse.bin 11856
        Dumping heap to C:UsersHarryeclipse.bin ...
        Heap dump file created
    
    11. jhat eclipse.bin 分析dump文件,浏览器中访问http://localhost:7000
        
        C:UsersHarry>jhat eclipse.bin
        Reading from eclipse.bin...
        Dump file created Sun Jul 22 11:55:08 CST 2018
        Snapshot read, resolving...
        Resolving 11914 objects...
        Chasing references, expect 2 dots..
        Eliminating duplicate references..
        Snapshot resolved.
        Started HTTP server on port 7000
        Server is ready.
    
    11. jmap -heap 11856 查看堆中jvm参数情况
        
    	Attaching to process ID 11856, please wait...
    	Debugger attached successfully.
    	Server compiler detected.
    	JVM version is 25.131-b11
    
    	using thread-local object allocation.
    	Parallel GC with 8 thread(s)
    
    	Heap Configuration:
    		 MinHeapFreeRatio         = 0
    		 MaxHeapFreeRatio         = 100
    		 MaxHeapSize              = 1073741824 (1024.0MB)
    		 NewSize                  = 357564416 (341.0MB)
    		 MaxNewSize               = 357564416 (341.0MB)
    		 OldSize                  = 716177408 (683.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 = 310902784 (296.5MB)
    		 used     = 90540600 (86.34624481201172MB)
    		 free     = 220362184 (210.15375518798828MB)
    		 29.121836361555385% used
    	From Space:
    		 capacity = 23068672 (22.0MB)
    		 used     = 11927744 (11.37518310546875MB)
    		 free     = 11140928 (10.62481689453125MB)
    		 51.70537775213068% used
    	To Space:
    		 capacity = 22544384 (21.5MB)
    		 used     = 0 (0.0MB)
    		 free     = 22544384 (21.5MB)
    		 0.0% used
    	PS Old Generation
    		 capacity = 716177408 (683.0MB)
    		 used     = 82475416 (78.6546859741211MB)
    		 free     = 633701992 (604.3453140258789MB)
    		 11.516059439842035% used
        
    13. jmap -dump:live,format=b,file=heap.hprof 11856
        将heap.hprof传输出来到window电脑上使用mat工具分析。
    
    14. jhat -heap 11856 显示java堆详细信息,如使用哪种回收器、参数配置、分代状况等,只在linux平台才可以测试
    
    15. jstack -l 11856 除堆栈外,显示锁的附加信息
        
        "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000000152da800 nid=0x18b4 in Object.wait() [0x000000001664e000]
           java.lang.Thread.State: WAITING (on object monitor)
                at java.lang.Object.wait(Native Method)
                - waiting on <0x00000000ff608ee0> (a java.lang.ref.ReferenceQueue$Lock)
                at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
                - locked <0x00000000ff608ee0> (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)
        
           Locked ownable synchronizers:
                - None
        
        "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000000152b9000 nid=0x444c in Object.wait() [0x000000001654f000]
           java.lang.Thread.State: WAITING (on object monitor)
                at java.lang.Object.wait(Native Method)
                - waiting on <0x00000000ff606b50> (a java.lang.ref.Reference$Lock)
                at java.lang.Object.wait(Object.java:502)
                at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
                - locked <0x00000000ff606b50> (a java.lang.ref.Reference$Lock)
                at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
        
           Locked ownable synchronizers:
                - None
    
    

    本文由博客群发一文多发等运营工具平台 OpenWrite 发布

  • 相关阅读:
    ASP.NET Web API自身对CORS的支持:从实例开始
    通过扩展让ASP.NET Web API支持W3C的CORS规范
    通过扩展让ASP.NET Web API支持JSONP
    [CORS:跨域资源共享] W3C的CORS Specification
    [CORS:跨域资源共享] 同源策略与JSONP
    如何让ASP.NET Web API的Action方法在希望的Culture下执行
    唐伯虎的垃圾
    Razor Engine,实现代码生成器的又一件利器
    ASP.NET Web API路由系统:Web Host下的URL路由
    How ASP.NET Web API 2.0 Works?[持续更新中…]
  • 原文地址:https://www.cnblogs.com/harryzhang66/p/13397876.html
Copyright © 2020-2023  润新知