java memory 隨筆

前言:原來的文章不是md形式更振,寫的也比較亂燎斩,現(xiàn)在看看 有點(diǎn)不好意思羞芍,就重新修正下婴削。

今天群里分享這個(gè)圖片,又這個(gè)圖片引起了一系列討論官疲,我們隊(duì)jvm的理解都是局限于知其然不知其所以然的階段啊乏沸。


image.png

類似的問題:
metaspace在不在堆中决记?
directory memory和native memory關(guān)系?

討論了一堆菜拓,記錄下自己的理解瓣窄,不一定正確。纳鼎。俺夕。


metaspace在不在堆中? 不在贱鄙。

可以參考這篇文章:深入探究 JVM | 探秘 Metaspace ---雖然年代寫的比較久遠(yuǎn)劝贸,但作者的理解我感覺哈 是比較準(zhǔn)的。
這個(gè)是jdk1.8的新特性逗宁,1.8以前呢映九,HotSpot JVM堆上有個(gè)永久代,存放類和方法的元數(shù)據(jù)以及常量池疙剑。1.8以后呢把永久代移除了氯迂,方法區(qū)移至 Metaspace践叠,字符串常量移至 Java Heap言缤。

為啥要這么干?
1 由于 PermGen 內(nèi)存經(jīng)常會(huì)溢出禁灼,引發(fā)惱人的 java.lang.OutOfMemoryError: PermGen管挟,因此 JVM 的開發(fā)者希望這一塊內(nèi)存可以更靈活地被管理,不要再經(jīng)常出現(xiàn)這樣的 OOM弄捕。
我覺得這個(gè)原因比較實(shí)在僻孝,現(xiàn)在比較流行的框架都喜歡用反射,比如spring的aop守谓,一般這種動(dòng)態(tài)代理的類都會(huì)占用方法區(qū)的資源的穿铆。
2 移除 PermGen 可以促進(jìn) HotSpot JVM 與 JRockit VM 的融合,因?yàn)?JRockit 沒有永久代斋荞。

一般情況下:設(shè)置Metaspace的參數(shù)-XX:MetaspaceSize -XX:MaxMetaspaceSize 這兩個(gè)參數(shù)的值最好一致荞雏,值的大小可以根據(jù)監(jiān)控情況動(dòng)態(tài)的調(diào)整一下。 如果Metaspace由于空間不足引起動(dòng)態(tài)擴(kuò)容平酿,會(huì)引發(fā)FULL GC凤优。

其他兩篇文章參考:
由「Metaspace容量不足觸發(fā)CMS GC」從而引發(fā)的思考
JVM參數(shù)MetaspaceSize的誤解


directory memory和native memory關(guān)系? 可以理解為directory memory是native memory的一部分蜈彼。

可以參考這篇文章:
JVM的Heap Memory和Native Memory 這篇文章可以先熟悉下概念筑辨。

image.png

一次堆外OOM問題排查 這篇文章詳細(xì)的說了下堆外內(nèi)存OOM及回收方式 而且有樣例,值得一看幸逆。

native memory中文叫本地內(nèi)存棍辕,狹義的理解下暮现,對jvm來說,就是不受jvm垃圾回收機(jī)制主動(dòng)管理的內(nèi)存就是本地內(nèi)存楚昭。
directory memory指的是NIO direct buffer操作的本地內(nèi)存送矩。

需要注意的是DirectBuffer這個(gè)引用是分配在堆上,受gc控制的哪替,而且記錄分配了多少堆外內(nèi)存的參數(shù)在java.nio.Bits類中栋荸,如下圖:


image.png

我還讀過一篇因?yàn)檫@個(gè)參數(shù)造成OOM,其實(shí)本地內(nèi)存并沒有超限凭舶,可惜當(dāng)時(shí)沒存晌块。
還讀了一篇JVM進(jìn)程無緣無故的掛了,后來看linux日志是本地內(nèi)存用的太多帅霜,被操作系統(tǒng)殺死了匆背,可惜也沒存。

他的回收機(jī)制叫Cleaner機(jī)制身冀,Cleaner實(shí)現(xiàn)了PhantomReference钝尸,具體研究下代碼吧,就是如果DirectBuffer被垃圾回收器回收的話搂根,會(huì)通過通知機(jī)制回收directory memory珍促。

一般給的建議是自己申請的堆外內(nèi)存,不用的時(shí)候最好自己回收下剩愧。DirectBuffer接口有個(gè)cleaner()方法可以獲得Cleaner 猪叙,調(diào)用Cleaner.clean方法就可以回收堆外內(nèi)存。


2018-12-14補(bǔ)充

最新理解仁卷,full gc可以看看gc日志穴翩,如果發(fā)生full gc 就會(huì)回收對yung old permanent區(qū)都進(jìn)行回收


2018-12-26補(bǔ)充 nio buffer用的是內(nèi)核內(nèi)存,主要目的是減少一次從內(nèi)核態(tài)到用戶態(tài)的內(nèi)存拷貝锦积。

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芒帕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丰介,更是在濱河造成了極大的恐慌背蟆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件基矮,死亡現(xiàn)場離奇詭異淆储,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)家浇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門本砰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钢悲,你說我怎么就攤上這事点额√蛑辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵还棱,是天一觀的道長载慈。 經(jīng)常有香客問我,道長珍手,這世上最難降的妖魔是什么办铡? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮琳要,結(jié)果婚禮上寡具,老公的妹妹穿的比我還像新娘。我一直安慰自己稚补,他們只是感情好童叠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著课幕,像睡著了一般厦坛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乍惊,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天杜秸,我揣著相機(jī)與錄音,去河邊找鬼污桦。 笑死亩歹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凡橱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亭姥,長吁一口氣:“原來是場噩夢啊……” “哼稼钩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起达罗,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坝撑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后粮揉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巡李,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年扶认,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侨拦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辐宾,死狀恐怖狱从,靈堂內(nèi)的尸體忽然破棺而出膨蛮,到底是詐尸還是另有隱情,我是刑警寧澤季研,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布敞葛,位于F島的核電站,受9級特大地震影響与涡,放射性物質(zhì)發(fā)生泄漏惹谐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一驼卖、第九天 我趴在偏房一處隱蔽的房頂上張望豺鼻。 院中可真熱鬧,春花似錦款慨、人聲如沸儒飒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桩了。三九已至,卻和暖如春埠戳,著一層夾襖步出監(jiān)牢的瞬間井誉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工整胃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颗圣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓屁使,卻偏偏與公主長得像在岂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蛮寂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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