国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

jvm間歇性崩潰分析

2019-11-14 23:44:05
字體:
來源:轉載
供稿:網友
jvm間歇性崩潰分析http://www.survivalescaperooms.com/LBSer/p/4417148.html1 問題描述

某服務有兩臺機器,每隔幾天會報警load高,一開始看監控發現gc時間抖動很大,以為是發生了fullgc引起卡頓而未加注意,之后登入線上機器查看日志發現是jvm崩潰導致了服務重啟從而引發gc時間抖動。以某天為例,該服務分別在上午7點和上午10點發生jvm崩潰,如果同時發生崩潰將導致線上停服,后果不堪設想。

2 問題分析

崩潰日志顯示jvm崩潰發生在在標記清除掃根路徑時。

搜索此bug,發現是jvm的一個已知bug,https://bugs.openjdk.java.net/browse/JDK-8020236,這個bug在1.6和1.7中均有,只是因為重現困難而一直未被修復。

Par_MarkFromRootsClosure::scan_oops_in_oop(HeapWord*)

有人遇到和我們一樣的問題(http://hllvm.group.VEvb.com/group/topic/43404),他通過壓測發現當“ParallelCMSThreads > ParallelGCThreads”會引起此崩潰,而當"ParallelCMSThreads <= ParallelGCThreads"時問題不再復現。而“ParallelCMSThreads > ParallelGCThreads”這個問題也在jvm bug列表中(https://bugs.openjdk.java.net/browse/JDK-6668573),此bug下有人給出的解決思路是將ParallelCMSThreads 設置為 <=ParallelGCThreads。

3 解決方法

查看我們junglepoi-service服務的jvm參數配置,發現ParallelCMSThreads被設置成4,而ParallelGCThreads卻未被設置。默認情況下ParallelGCThreads = (ncpus <= 8) ? ncpus : 3 + ((ncpus * 5) / 8),其中ncpus是機器的核數,由于junglepoi-service服務所在的機器為2核4G配置,因此默認情況下ParallelGCThreads=2,此時ParallelCMSThreads > ParallelGCThreads。

解決方法是:1)將ParallelCMSThreads設置為2或1;2)或者不設置ParallelCMSThreads,默認情況下ParallelCMSThreads = (ParallelGCThreads + 3) / 4,如果不設置默認ParallelCMSThreads=(2+3)/4=1。

我們將ParallelCMSThreads設置為2,上線兩天未復現jvm崩潰異常,后續將持續觀察。

4 啟示

不能簡單拷貝其它項目的jvm參數配置,需要結合項目特點、機器環境等各方面信息來綜合配置。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东港市| 紫阳县| 岳阳市| 元谋县| 鞍山市| 河西区| 景德镇市| 深州市| 波密县| 喀喇沁旗| 高邮市| 腾冲县| 日土县| 扎兰屯市| 曲松县| 米易县| 思茅市| 荆门市| 永修县| 通榆县| 固原市| 景洪市| 阜新市| 卓尼县| 鹤壁市| 湖北省| 中卫市| 黔东| 西乌珠穆沁旗| 榆林市| 昔阳县| 齐齐哈尔市| 青川县| 通榆县| 陆良县| 万荣县| 南宫市| 福鼎市| 湟中县| 敦化市| 沈阳市|