1. 程式人生 > >JAVA G1帶來的一次宕機

JAVA G1帶來的一次宕機

這就是對自己的一個打臉

因為一個自己曾經知道的問題查了半天

前兩天有同事求助,java服務始終宕機,也看不到OOM的日誌,莫名其妙的掛了

這問題見多了,立刻去看/var/log/message日誌,果然是被系統殺掉了

原因是實體記憶體不夠了

本以為這就完了,結果同事說不應該啊,記憶體只設了800M,這臺雲主機是2G的記憶體呢

看了一下JAVA的引數,果然Xmx800M,-XX:MaxDirectMemorySize=512M,這加起來也才1.3G啊

用jmap -heap看了一下記憶體的使用情況,用的也不多,怎麼會呢

改了改引數試了半天,感覺Xmx設定超過600M就會掛

試了20分鐘,突然發現這是G1回收器,想起來G1好像有個什麼記憶體是固定佔用的一塊大記憶體

仔細看了一下heap的內容,果然是這樣

CompressedClassSpaceSize = 1073741824 (1024.0MB)

這下真相大白了

要是早點兒想起來能節省20分鐘的生命啊