目前有存在大於1s的FullGC,金橋的機器目前是2C4G的,使用的GC方法只能使用單線程進行串行的回收,致使GC比較慢。html
建議能夠調整GC參數,改用CMS,可以解決這個問題,web
參數修改方法:bash
在應用 webapp/WEB-INF/tars/prod 文件夾下,建立文件 extraenv.sh併發
文件內容app
#!/usr/bin/env bash
JAVA_OPTS="${JAVA_OPTS} -XX:+UseConcMarkSweepGC"
或者升級JAVA8後,默認使用CMS也能解決這個問題。webapp
ps:我查的跟上面說的不同(https://zhuanlan.zhihu.com/p/45558897)spa
jdk1.7 默認垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.8 默認垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.9 默認垃圾收集器G1線程
實際應該是,機器目前是2C4G,核心數太少,因此採用串行Serial收集器(併發時對CPU資源佔用多,不適合CPU核心數較少的狀況。)htm
老年代收集器中:對象
Serial Old 在進行垃圾收集時,必須暫停其餘全部的工做線程,直至Serial收集器收集結束爲止(「Stop The World」)。
CMS(Concurrent Mark Sweep)收集器是一種以獲取最短回收停頓時間爲目標的收集器。從整體上來講,CMS收集器的內存回收過程是與用戶線程一塊兒併發執行的(Parallel是並行)
垃圾收集器詳情:https://www.cnblogs.com/twoheads/p/10207573.html