jstat結合 jvisualvm.exe(java自帶內存分析工具)分析內存泄漏實例

jstat是jdk自帶的可以查看堆內存使用量及GC情況的指令.

具體情況請看另一篇博客: https://blog.csdn.net/liao0801_123/article/details/82908928

 jvisualvm.exe是java的jvm內存/線程監視工具, 位於jdk--bin目錄下

以下通過一則簡單的內存泄漏案例結合使用兩個工具.

內存泄漏代碼:

	class Key{
        Integer id;

        Key(Integer id){
            this.id = id;
        }

        public int hashCode(){
            return id.hashCode();
        }
    }

    public void method(){
        ......
        boolean ss = true;
		Map<Key, String> map = new HashMap<Key, String>();
        while(ss){
            for(int i = 0; i< 100000; i++){
                if(!map.containsKey(new Key(i))){
                    map.put(new Key(i), "Number:" + i);
                }
            }

            //Thread.sleep(1000L);
        }
        ......
    }

jvisualvm.exe截圖

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

圖中時間點16:07:30進入內存泄漏方法

綠色箭頭, 接近堆內存使用峯值.

紅色箭頭, 宕機

藍色箭頭, 恢復

S0C      S1C      S0U      S1U      EC       EU        OC         OU        PC       PU         YGC    YGCT   FGC     FGCT     GCT
8704.0   8704.0   2520.3    0.0     69952.0  44990.8   174784.0   116411.3  61696.0  61600.4    203    1.352  17      4.381    5.733
8704.0   8704.0   2520.3    0.0     69952.0  45200.2   174784.0   116411.3  61696.0  61600.4    203    1.352  17      4.381    5.733
8704.0   8704.0   2520.3    0.0     69952.0  45408.2   174784.0   116411.3  61696.0  61600.7    203    1.352  17      4.381    5.733
8704.0   8704.0   2520.3    0.0     69952.0  45616.6   174784.0   116411.3  61696.0  61600.7    203    1.352  17      4.381    5.733
8704.0   8704.0   2520.3    0.0     69952.0  65486.6   174784.0   116411.3  61952.0  61700.4    203    1.352  17      4.381    5.733
8704.0   8704.0    0.0     6224.6   69952.0  34025.9   174784.0   116411.3  61952.0  61940.6    204    1.370  17      4.381    5.751
8704.0   8704.0    0.0     6224.6   69952.0  37953.5   174784.0   116411.3  62208.0  62144.6    204    1.370  17      4.381    5.751
8704.0   8704.0    0.0     6224.6   69952.0  39470.7   174784.0   116411.3  62208.0  62188.6    204    1.370  17      4.381    5.751
8704.0   8704.0    0.0     6224.6   69952.0  41256.0   174784.0   116411.3  62208.0  62207.5    204    1.370  18      4.381    5.751
8704.0   8704.0    0.0      0.0     69952.0   7639.7   174784.0   122571.6  62976.0  62918.8    204    1.370  18      4.879    6.249
8704.0   8704.0    0.0      0.0     69952.0   7895.4   174784.0   122571.6  62976.0  62918.8    204    1.370  18      4.879    6.249
8704.0   8704.0    0.0      0.0     69952.0   8120.1   174784.0   122571.6  62976.0  62918.8    204    1.370  18      4.879    6.249
8704.0   8704.0    0.0      0.0     69952.0   8375.8   174784.0   122571.6  62976.0  62918.9    204    1.370  18      4.879    6.249
8704.0   8704.0    0.0      0.0     69952.0   8542.6   174784.0   122571.6  62976.0  62919.7    204    1.370  18      4.879    6.249
8704.0   8704.0   8704.0   8704.0   69952.0  69952.0   174784.0   174784.0  64000.0  63867.6    206    1.740  19      4.879    6.619
8704.0   8704.0    0.0     5090.2   69952.0  69952.0   174784.0   174784.0  64000.0  63868.5    206    1.740  20      5.562    7.302
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63575.6    206    1.740  21      6.481    8.221
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63576.6    206    1.740  22      7.288    9.028
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63577.6    206    1.740  23      8.106    9.846
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63577.6    206    1.740  24      8.883   10.623
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63550.3    206    1.740  25      9.860   11.600
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63551.5    206    1.740  26     10.659   12.398
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63551.5    206    1.740  27     11.451   13.191
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63551.5    206    1.740  28     12.267   14.007
8704.0   8704.0    0.0     8460.2   69952.0  69952.0   174784.0   174784.0  63744.0  63547.9    206    1.740  30     14.022   15.762
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63547.9    206    1.740  31     14.818   16.558
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63550.1    206    1.740  32     15.626   17.366
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63550.1    206    1.740  33     16.599   18.339
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63550.1    206    1.740  34     17.380   19.120
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63550.1    206    1.740  36     18.943   20.683
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  37     19.831   21.571
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  38     20.606   22.346
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  39     21.383   23.123
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  41     22.966   24.706
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  42     23.738   25.478
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  43     24.517   26.257
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  44     25.293   27.033
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  45     26.176   27.915
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  47     27.780   29.520
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  48     28.583   30.323
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  49     29.371   31.111
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  50     30.190   31.930
8704.0   8704.0    0.0     8703.9   69952.0  69952.0   174784.0   174784.0  63744.0  63549.9    206    1.740  51     31.189   32.929
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63472.8    206    1.740  52     31.997   33.737
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63488.0  63482.2    206    1.740  54     33.806   35.546
8704.0   8704.0    0.0     8703.7   69952.0  69952.0   174784.0   174784.0  63488.0  63484.4    206    1.740  55     34.589   36.329
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63488.0  63487.7    206    1.740  56     35.375   37.114
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63488.0  63487.5    206    1.740  57     36.283   38.023
8704.0   8704.0    0.0     8704.0   69952.0  69952.0   174784.0   174784.0  63744.0  63490.9    206    1.740  58     37.056   38.796
8704.0   8704.0    0.0      6.8     69952.0   1400.4   174784.0   111915.3  63744.0  63521.6    208    1.744  59     38.400   40.144
8704.0   8704.0   107.9     0.0     69952.0  64537.2   174784.0   111915.3  63744.0  63540.5    209    1.746  59     38.400   40.147
8704.0   8704.0   107.9     0.0     69952.0  64754.1   174784.0   111915.3  63744.0  63542.5    209    1.746  59     38.400   40.147
8704.0   8704.0   107.9     0.0     69952.0  64971.6   174784.0   111915.3  63744.0  63542.5    209    1.746  59     38.400   40.147
8704.0   8704.0   107.9     0.0     69952.0  65191.5   174784.0   111915.3  63744.0  63542.6    209    1.746  59     38.400   40.147
8704.0   8704.0   107.9     0.0     69952.0  65494.9   174784.0   111915.3  63744.0  63543.9    209    1.746  59     38.400   40.147
8704.0   8704.0   107.9     0.0     69952.0  69952.0   174784.0   111915.3  63744.0  63545.1    209    1.746  59     38.400   40.147
8704.0   8704.0    0.0     155.1    69952.0   307.5    174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   457.2    174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   761.1    174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   912.8    174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   1216.3   174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   1368.0   174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   1669.4   174784.0   111915.3  63744.0  63545.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   1825.3   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   2179.4   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   2333.9   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   2487.6   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   2786.9   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   2942.6   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0   3239.9   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0  25764.5   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0  26066.4   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0    0.0     155.1    69952.0  26222.5   174784.0   111915.3  63744.0  63547.1    210    1.748  59     38.400   40.149
8704.0   8704.0   198.3     0.0     69952.0   249.7    174784.0   111915.3  63744.0  63547.1    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0   415.4    174784.0   111915.3  63744.0  63547.1    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  19151.7   174784.0   111915.3  63744.0  63555.4    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  25719.0   174784.0   111915.3  63744.0  63594.3    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  30240.2   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  30494.3   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  30753.0   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  30879.9   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  31133.8   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  31387.1   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  31520.4   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  31768.1   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  32027.5   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  32154.4   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  32408.6   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  32671.6   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  32948.1   174784.0   111915.3  63744.0  63630.6    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  33200.2   174784.0   111915.3  63744.0  63630.7    211    1.751  59     38.400   40.151
8704.0   8704.0   198.3     0.0     69952.0  33457.5   174784.0   111915.3  63744.0  63630.7    211    1.751  59     38.400   40.151

可以看出從第19次Full GC開始Eden區和 老年代(Old Generation)的 總大小和使用大小相等, 即GC無法再回收掉內存, 也就無法分配空間給新對象. 拋出異常 java.lang.OutOfMemoryError: Java heap space

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:2882)
	at java.lang.StringValue.from(StringValue.java:24)
	at java.lang.String.<init>(String.java:178)
	at java.io.Win32FileSystem.resolve(Win32FileSystem.java:241)
	at java.io.File.<init>(File.java:312)
	at org.apache.naming.resources.FileDirContext.file(FileDirContext.java:770)
	at org.apache.naming.resources.FileDirContext.doGetAttributes(FileDirContext.java:398)
	at org.apache.naming.resources.BaseDirContext.getAttributes(BaseDirContext.java:1163)
	at org.apache.naming.resources.BaseDirContext.getAttributes(BaseDirContext.java:1116)
	at org.apache.naming.resources.ProxyDirContext.getAttributes(ProxyDirContext.java:882)
	at org.apache.catalina.loader.WebappClassLoaderBase.modified(WebappClassLoaderBase.java:1185)
	at org.apache.catalina.loader.WebappLoader.modified(WebappLoader.java:500)
	at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:420)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1341)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1542)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1552)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1552)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1520)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
	at java.io.ObjectInputStream$BlockDataInputStream.<init>(ObjectInputStream.java:2352)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:274)
	at sun.rmi.server.MarshalInputStream.<init>(MarshalInputStream.java:111)
	at sun.rmi.transport.ConnectionInputStream.<init>(ConnectionInputStream.java:38)
	at sun.rmi.transport.StreamRemoteCall.getInputStream(StreamRemoteCall.java:115)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:124)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章