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

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

jvm間歇性崩潰分析

2019-11-14 23:44:05
字體:
來源:轉載
供稿:網友
jvm間歇性崩潰分析http://m.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參數配置,需要結合項目特點、機器環境等各方面信息來綜合配置。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 穆棱市| 岳池县| 青浦区| 虎林市| 修武县| 华亭县| 定西市| 离岛区| 剑河县| 仁布县| 上杭县| 丰台区| 翁源县| 宁南县| 达日县| 额敏县| 北辰区| 巫山县| 七台河市| 婺源县| 宁乡县| 灵璧县| 古浪县| 正定县| 额敏县| 绥滨县| 修文县| 大渡口区| 阜阳市| 芦溪县| 新建县| 玉田县| 措美县| 淮阳县| 玛纳斯县| 道孚县| 沙洋县| 商南县| 西贡区| 新营市| 曲靖市|