java內存泄露分析定位


  線上服務模塊CPU和RAM內存都出現了異常,記錄一下自己的分析過程:

     1.確定線上環境os是linux-debian9.3

     2.確定web容器采用的是jetty9.4版本

     3.先用top分析當前系統內存和cpu的占用情況

        先查看下是否有緩存占用了物理內存

   

輸入指令: free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         10G        168M        510M        926M        316M
Swap:          7.9G        502M        7.4G

 

 

 

       1)先top,然后m切換內存使用情況圖表

top - 11:31:03 up 2 days, 14:51,  2 users,  load average: 21.71, 20.58, 19.47
Tasks: 161 total,   1 running, 160 sleeping,   0 stopped,   0 zombie
%Cpu(s): 25.6 us, 43.3 sy,  0.0 ni, 31.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 91.5/16305244 [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||        ]
KiB Swap:  0.0/16777212 [                                                                                                    ]

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
 5295 root      20   0 9937420 878068  18684 S 128.0  5.4  52:31.03 java                                                                                                                                           
 5512 root      20   0 9778.5m 887436  17816 S 128.0  5.4   4505:13 java                                                                                                                                           
 4261 root      20   0 9994704 1.513g  18272 S 127.7  9.7   4512:04 java                                                                                                                                           
 3326 root      20   0 9831.6m 1.540g  18244 S 118.7  9.9   4501:25 java                                                                                                                                           
 3751 root      20   0 9851.2m 1.087g  18532 S   0.7  7.0  23:09.35 java                                                                                                                                           
 5740 root      20   0 8865332 740708  17792 S   0.3  4.5   3:08.60 java                                                                                                                                           
14968 root      20   0   44948   3748   3080 R   0.3  0.0   0:00.07 top                                                                                                                                            
    1 root      20   0  204376   5740   4348 S   0.0  0.0   0:03.93 systemd                                                                                                                                        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                                                                       
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.58 ksoftirqd/0                                                                                                                                    
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                                                   
    7 root      20   0       0      0      0 S   0.0  0.0   1:19.28 rcu_sched                                                                                                                                      
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                                                         
    9 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 migration/0                                                                                                                                    
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                                                                                  
   11 root      rt   0       0      0      0 S   0.0  0.0   0:00.26 watchdog/0                                                                                                                                     
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0                                                                                                                                        
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1                                                                                                                                        
   14 root      rt   0       0      0      0 S   0.0  0.0   0:00.22 watchdog/1                                                                                                                                     
   15 root      rt   0       0      0      0 S   0.0  0.0   0:00.09 migration/1                                                                                                                                    
   16 root      20   0       0      0      0 S   0.0  0.0   0:00.51 ksoftirqd/1                                                                                                                                    
   18 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                                                                                                                   
   19 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/2                                                                                                                                        
   20 root      rt   0       0      0      0 S   0.0  0.0   0:00.21 watchdog/2                                                                                                                                     
   21 root      rt   0       0      0      0 S   0.0  0.0   0:00.08 migration/2                                                                                                                                    
   22 root      20   0       0      0      0 S   0.0  0.0   0:00.50 ksoftirqd/2                                                                                                                                    
   24 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0H                                                                                                                                   
   25 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/3                                                                                                                                        
   26 root      rt   0       0      0      0 S   0.0  0.0   0:00.20 watchdog/3                                                                                                                                     
   27 root      rt   0       0      0      0 S   0.0  0.0   0:00.09 migration/3                                                                                                                                    
   28 root      20   0       0      0      0 S   0.0  0.0   0:00.51 ksoftirqd/3                                                                                                                                    
   30 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/3:0H                                                                                                                                   
   31 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/4                                                                                                                                        
   32 root      rt   0       0      0      0 S   0.0  0.0   0:00.21 watchdog/4                                                                                                                                     
   33 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 migration/4                                                                                                                                    
   34 root      20   0       0      0      0 S   0.0  0.0   0:00.38 ksoftirqd/4                                                                                                                                    
   36 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/4:0H                                                                                                                                   
   37 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/5                                                                                                                                        
   38 root      rt   0       0      0      0 S   0.0  0.0   0:00.20 watchdog/5                                                                                                                                     
   39 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 migration/5                                                                                                                                    
   40 root      20   0       0      0      0 S   0.0  0.0   0:00.35 ksoftirqd/5                                                                                                                                    
   42 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/5:0H                                                                                                                                   
   43 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/6                                                                                                                                        
   44 root      rt   0       0      0      0 S   0.0  0.0   0:00.20 watchdog/6                                                                                                                                     
   45 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 migration/6                                                                                                                                    
   46 root      20   0       0      0      0 S   0.0  0.0   0:00.40 ksoftirqd/6   

4.分析最占內存的web服務

 1)top 然后在輸入大寫M自動根據內存的大小排序

 2)top 然后在輸入大寫P自動根據CPU使用的情況排序


5.查詢到進程信息后,獲取到當前的進程PID

  

 4261 root      20   0 9994704 1.513g  18272 S 127.7  9.7   4512:04 java                                                                                                                                           

6.根據PID查詢到WEB服務對應的端口信息,然后就知道了4261對應的web服務端口為9180

  命令:

輸入指令:netstat -ntlp;
tcp 0 0 0.0.0.0:9180 0.0.0.0:* LISTEN 4261/java  

7.然后通過java自帶的工具來導出pid對應的dump文件信息  

輸入指令:
jmap -dump:format=b,file=/home/ifaces/9180.dump 4261

8.將文件下載到本地分析,我使用的是debian開發環境,所以直接用sftp來下載文件:
 

輸入指令:
sftp root@xxx.123.xxx.150
輸入密匙進入

9.將生成的dump下載到本地

sftp> get /home/ifaces/9180 /work/dump

10.然后在控制台輸入 jvisualvm調用java自帶的dump分析工具來分析dump的文件內容信息

輸入指令:/workbench/visualvm_141/bin$ ./visualvm

11.利用jvisualvm就可以看到堆的信息了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM