頻繁 full gc 處理方式

線上服務 full gc 時,使用下面方式查詢問題

  1. 首先我們要在Tomcat 正在進行 full gc 時能收到異常通知,然後用 ps 命令找到當前 tomcat 所在的進程號,如 ps -ef | grep leon-tomcat ,後面假設進程號為 XXX
  2. jmap -dump:live,format=b,file=dump.hprof XXXX 此命令可以把當前 tomcat 所佔用的內存全部 dump 到二進制文件中,以備後面的分析使用。下載我們即將使用的關鍵軟件,直接官網下載,下面是寫此文時的最新版本,讀者可以使用最新版。wget http://ftp.jaist.ac.jp/pub/eclipse/mat/1.9.1/rcp/MemoryAnalyzer-1.9.1.20190826-linux.gtk.x86_64.zip
    下載完之後需要解壓,linux 可以使用 unzip 命令,很方便。一般jmap 出來的文件非常大,可以修改配置參數,按需要修改使用內存大小
<code>-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-vmargs
-Xms16g
-Xmx16g/<code>
  1. ./ParseHeapDump.sh ../today_heap_dump/dump.hprof org.eclipse.mat.api:suspects
    1. 還可以使用另外兩個 參數
    2. org.eclipse.mat.api:overview
    3. org.eclipse.mat.api:top_components
  2. 最後,命令執行的結果裡面,會有一個壓縮文件,down 下來,裡面是解析完的html 文件,就可以分析問題原因


頻繁 full gc 處理方式


分享到:


相關文章: