docker 容器內(nèi) Java 應(yīng)用發(fā)生java.lang.OutOfMemoryError: Java heap space

生產(chǎn)服務(wù)器使用docker進(jìn)行部署麻诀,有一個(gè)服務(wù)經(jīng)常出現(xiàn)java.lang.OutOfMemoryError: Java heap space問題,一般是因?yàn)?br> 1傲醉、代碼里有遞歸蝇闭,死循環(huán)
2、查詢了超大量數(shù)據(jù)
我這邊沒有以上兩種清空硬毕,但是始終找不到原因
于是修改了docker中jvm的配置信息呻引,jvm出現(xiàn)oom異常時(shí)由docker容器自動(dòng)重啟,變相的解決oom的問題吐咳。具體方法如下
1逻悠、在dockerfile中添加-XX:+ExitOnOutOfMemoryError 配置,整體如下

FROM openjdk:8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV LANG C.UTF-8
#ENV LANGUAGE zh_CN:zh  
#ENV LC_ALL zh_CN.UTF-8 
RUN sh -c 'touch /opt/xinkao-modules-consume.jar'
ENV JAVA_OPTS="-Xms300m -Xmx300m -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+ExitOnOutOfMemoryError"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /opt/xinkao-modules-consume.jar" ]

2、docker run 添加--restart=always參數(shù)

docker run --restart=always -d -v $PWD:/opt/ --network host --name yxy-consume yxy-consume

3韭脊、最后說下jvm的一些配置參數(shù)

-verbose:gc 打印每次垃圾回收事件信息 和 -XX:+PrintGC 效果一樣童谒,官方文檔中有說明:兩者功能一樣,都用于垃圾收集時(shí)的信息打印沪羔。但是也有不同點(diǎn):
-verbose:gc 是 穩(wěn)定版本
XX:+PrintGC 是 非穩(wěn)定版本
Xms256m  配置初始堆大小 256m
-Xmx24g   最大堆大小 24g
-Xmn8g    年輕代大小 8g
-XX:+PrintGCDateStamps   此參數(shù)主要定義GC Log 的時(shí)間戳信息饥伊,通常以“基準(zhǔn)時(shí)間”形式打印。
  例如2022-06-07T08:09:50.902+0800: 51117.527: [GC (Allocation Failure) [PSYoungGen: 1195854K->17659K(1205248K)] 1288769K->110574K(1311744K), 0.0581524 secs] [Times: user=0.04 sys=0.00, real=0.05 secs] 
-XX:+PrintGCDetails  打印gc詳細(xì)信息 格式如下
[GC (Allocation Failure) [PSYoungGen: 1195854K->17659K(1205248K)] 1288769K->110574K(1311744K), 0.0581524 secs]
Xloggc:log/gc-%t.log             定義GC Log 的存儲(chǔ)路徑以及所輸出的文件名稱任内。
-XX:+UseGCLogFileRotation   定義GC Log 的滾動(dòng)功能,需要進(jìn)行開啟或關(guān)閉融柬,其通乘类拢基于Xloggc配置一起使用
-XX:NumberOfGCLogFiles=2   主要定義滾動(dòng)日志文件的個(gè)數(shù)  
對(duì)應(yīng)的日志文件  命名策略為:<filename>.0、<filename>.1粒氧、 ... 越除、 <filename>.n-1等
-XX:GCLogFileSize=100M   定義滾動(dòng)日志文件的大小   
當(dāng)前寫日志文件大小超過該   參數(shù)值時(shí),日志將寫入下一個(gè)文件,依次類推摘盆。
-XX:+CrashOnOutOfMemoryError
# -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof    發(fā)生oom自動(dòng)生成堆棧信息便于后續(xù)分析原因
# -XX:OnOutOfMemoryError=/script/restart.sh      發(fā)生oom時(shí)調(diào)用腳本重啟應(yīng)用程序
# -XX:+ExitOnOutOfMemoryError      發(fā)生oom立即退出翼雀,無(wú)任何信息文件生成,不建議使用
# -XX:+CrashOnOutOfMemoryError    發(fā)生oom后立即退出孩擂,JVM還會(huì)生成文本和二進(jìn)制崩潰文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狼渊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子类垦,更是在濱河造成了極大的恐慌狈邑,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚤认,死亡現(xiàn)場(chǎng)離奇詭異米苹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)砰琢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門蘸嘶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陪汽,你說我怎么就攤上這事训唱。” “怎么了掩缓?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵雪情,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我你辣,道長(zhǎng)巡通,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮弥锄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戒悠。我一直安慰自己卤恳,他們只是感情好突琳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冠息,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镇眷,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天惑申,我揣著相機(jī)與錄音人芽,去河邊找鬼。 笑死惕味,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躺同。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼涛救!你這毒婦竟也來了程储?” 一聲冷哼從身側(cè)響起章鲤,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎败徊,沒想到半個(gè)月后帚呼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡皱蹦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年煤杀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片根欧。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怜珍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凤粗,到底是詐尸還是另有隱情酥泛,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布嫌拣,位于F島的核電站柔袁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏异逐。R本人自食惡果不足惜捶索,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灰瞻。 院中可真熱鬧腥例,春花似錦辅甥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至构回,卻和暖如春夏块,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纤掸。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工脐供, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人借跪。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓政己,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掏愁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匹颤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容