jvm 常用參數(shù)(隨筆)

一.jvm常用參數(shù)

1. -verbose:gc

2. -XX:+PrintGC? 打印gc

3. -XX:+PrintGCDetails? ? ? 打印gc的詳細(xì)信息

Heap

PSYoungGen? ? ? total 76288K, used 5243K [0x000000076b380000, 0x0000000770880000, 0x00000007c0000000)

eden space 65536K, 8% used [0x000000076b380000,0x000000076b89ed38,0x000000076f380000)

from space 10752K, 0% used [0x000000076fe00000,0x000000076fe00000,0x0000000770880000)

to? space 10752K, 0% used [0x000000076f380000,0x000000076f380000,0x000000076fe00000)

ParOldGen? ? ? total 175104K, used 0K [0x00000006c1a00000, 0x00000006cc500000, 0x000000076b380000)

object space 175104K, 0% used [0x00000006c1a00000,0x00000006c1a00000,0x00000006cc500000)

Metaspace? ? ? used 2874K, capacity 4486K, committed 4864K, reserved 1056768K

class space? ? used 308K, capacity 386K, committed 512K, reserved 1048576K

4.-XX:+PrintGCTimeStamps? 打印gc發(fā)生的時間戳

5.-Xloggc:log/gc.log? 指定log文件位置

6.-XX:+PrintHeapAtGC? 查看gc前后堆的大小

7.-XX:+TraceClassLoading? 監(jiān)控類的加載

8.-XX:+PrintClassHistogram? 按下ctrl+break 打印類的信息

9.-Xmx? -Xms

指定最大推和最小堆

比如? -Xmx20m -Xms5M

10.-Xmn? 設(shè)置新生代的大小

11.-XX:SurvivorRatio

設(shè)置兩個Survivor區(qū)(s0,s1)和eden的比

8表示 兩個survivor:eden=2:8 ,即一個survivor占年輕代的1/10

-XX:NewRatio

新生代(eden+2*s)和老年代(不包含永久區(qū))的比值

新生代:老年代 = 1:4 即年輕代占堆的1/5

12. -XX:+HeapDumpOnOutOfMemoryError? oom 時導(dǎo)出oom堆到文件

13. -XX:+HeapDumpPath 導(dǎo)出oom的路徑

-Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/log.txt

14. -XX:OnOutOfMemoryError

在發(fā)生內(nèi)存不夠的時候執(zhí)行一個腳本

-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p

當(dāng)程序OOM時,在D:/a.txt中將會生成線程的dump

注:

根據(jù)事件調(diào)整新生代和幸存代的大小

官方推薦新生代占堆的3/8

幸存代占新生代的1/10

在oom 時根蟹,記得dump出堆嘁扼,確惫昧眩可以排查現(xiàn)場問題

永久區(qū)配置參數(shù)

15. -XX:PermSize? -XX:MaxPermSize

設(shè)置永久區(qū)的初始空間和最大空間

一個系統(tǒng)可以容納多少個類型

16. -Xss? 棧大小

通常只有幾百K

決定了函數(shù)調(diào)用的深度

每個線程都有獨(dú)立的棽鐾啵空間


二.垃圾回收器

1.串行垃圾回收器

? ? 局部變量、參數(shù) 分配在棧上

? ? 最古老舶斧,最穩(wěn)定

? ? 效率高

? ? 可能會產(chǎn)生較長的停頓

? ? -XX:+UseSerialGC

? ? ? ?新生代桃焕、老年代使用串行回收

? ? ? 新生代復(fù)制算法

2.并行垃圾回收器

2.1ParNew

? ? ? ?-XX:+UseParNewGC

? ? ? ?新生代并行

? ? ? ?老年代串行

? ? ? ?Serial收集器新生代的并行版本

? ? ? ?復(fù)制算法

? ? ? ?多線程,需要多核支持

? ? ? ?-XX:ParallelGCThreads 限制線程數(shù)量

2.2Parallel收集器

? ? ? 類似ParNew

? ? ?新生代復(fù)制算法

? ? ?老年代 標(biāo)記-壓縮

? ? ?更加關(guān)注吞吐量

? ? -XX:+UseParallelGC 使用Parallel收集器+ 老年代串行

? ? -XX:+UseParallelOldGC 使用Parallel收集器+ 并行老年代

2.3CMS收集器

? ?Concurrent Mark Sweep 并發(fā)標(biāo)記清除

? ?標(biāo)記-清除算法

? ?與標(biāo)記-壓縮相比? ?并發(fā)階段會降低吞吐量

? ?老年代收集器(新生代使用ParNew)

? ?-XX:+UseConcMarkSweepGC

2.3.1運(yùn)行流程

? ?CMS運(yùn)行過程比較復(fù)雜捧毛,著重實(shí)現(xiàn)了標(biāo)記的過程,可分為

? ?1.初始標(biāo)記

? ? ? ? ? 根可以直接關(guān)聯(lián)到的對象

? ? ? ? ? 速度快

? ?2.并發(fā)標(biāo)記(和用戶線程一起)

? ? ? ? ?主要標(biāo)記過程让网,標(biāo)記全部對象

? ?3.重新標(biāo)記

? ? ? ? 由于并發(fā)標(biāo)記時呀忧,用戶線程依然運(yùn)行,因此在正式清理前溃睹,再做修正

? ?4.并發(fā)清除(和用戶線程一起)

? ? ? ? 基于標(biāo)記結(jié)果而账,直接清理對象

三.命令精講

? ? -XX:+UseSerialGC:在新生代和老年代使用串行收集器

? ? -XX:SurvivorRatio:設(shè)置eden區(qū)大小和survivior區(qū)大小的比例

? ? -XX:NewRatio:新生代和老年代的比

? ? -XX:+UseParNewGC:在新生代使用并行收集器

? ? ?-XX:+UseParallelGC :新生代使用并行回收收集器

? ? ?-XX:+UseParallelOldGC:老年代使用并行回收收集器

? ? ?-XX:ParallelGCThreads:設(shè)置用于垃圾回收的線程數(shù)

? ? ?-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器

? ? ?-XX:ParallelCMSThreads:設(shè)定CMS的線程數(shù)量

? ? ?-XX:CMSInitiatingOccupancyFraction:設(shè)置CMS收集器在老年代空間被使用多少后觸發(fā)

? ? ?-XX:+UseCMSCompactAtFullCollection:設(shè)置CMS收集器在完成垃圾收集后是否要進(jìn)行一次內(nèi)存碎片的整理

? ? ?-XX:CMSFullGCsBeforeCompaction:設(shè)定進(jìn)行多少次CMS垃圾回收后因篇,進(jìn)行一次內(nèi)存壓縮

? ? ?-XX:+CMSClassUnloadingEnabled:允許對類元數(shù)據(jù)進(jìn)行回收

? ? ?-XX:CMSInitiatingPermOccupancyFraction:當(dāng)永久區(qū)占用率達(dá)到這一百分比時泞辐,啟動CMS回收

? ? ?-XX:UseCMSInitiatingOccupancyOnly:表示只在到達(dá)閥值的時候,才進(jìn)行CMS回收


老年代標(biāo)記-壓縮

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竞滓,一起剝皮案震驚了整個濱河市咐吼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌商佑,老刑警劉巖锯茄,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡肌幽,警方通過查閱死者的電腦和手機(jī)晚碾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喂急,“玉大人格嘁,你說我怎么就攤上這事±纫疲” “怎么了糕簿?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長画机。 經(jīng)常有香客問我冶伞,道長,這世上最難降的妖魔是什么步氏? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任响禽,我火速辦了婚禮,結(jié)果婚禮上荚醒,老公的妹妹穿的比我還像新娘芋类。我一直安慰自己,他們只是感情好界阁,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布侯繁。 她就那樣靜靜地躺著,像睡著了一般泡躯。 火紅的嫁衣襯著肌膚如雪贮竟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天较剃,我揣著相機(jī)與錄音咕别,去河邊找鬼。 笑死写穴,一個胖子當(dāng)著我的面吹牛惰拱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啊送,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼偿短,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了馋没?” 一聲冷哼從身側(cè)響起昔逗,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎篷朵,沒想到半個月后纤子,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年控硼,在試婚紗的時候發(fā)現(xiàn)自己被綠了泽论。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡卡乾,死狀恐怖翼悴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幔妨,我是刑警寧澤鹦赎,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站误堡,受9級特大地震影響古话,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锁施,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一陪踩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悉抵,春花似錦肩狂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至列粪,卻和暖如春审磁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岂座。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工态蒂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掺逼。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像瓤介,于是被迫代替她去往敵國和親吕喘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

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

  • 原文閱讀 前言 這段時間懈怠了刑桑,罪過氯质! 最近看到有同事也開始用上了微信公眾號寫博客了,挺好的~給他們點(diǎn)贊祠斧,這博客我...
    碼農(nóng)戲碼閱讀 5,952評論 2 31
  • Java 虛擬機(jī)有自己完善的硬件架構(gòu), 如處理器闻察、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)辕漂。JVM 屏蔽了與具體操作系...
    尹小凱閱讀 1,685評論 0 10
  • JVM架構(gòu) 當(dāng)一個程序啟動之前呢灶,它的class會被類裝載器裝入方法區(qū)(Permanent區(qū)),執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,650評論 0 7
  • 這篇文章是我之前翻閱了不少的書籍以及從網(wǎng)絡(luò)上收集的一些資料的整理钉嘹,因此不免有一些不準(zhǔn)確的地方鸯乃,同時不同JDK版本的...
    高廣超閱讀 15,564評論 3 83
  • http://www.cnblogs.com/angeldevil/p/3801189.html值得一看 Clas...
    snail_knight閱讀 1,415評論 1 0