JVM堆配置小于8G参数

JVM堆配置小于8G,推荐开启CMS垃圾收集器,开启方法:在env中的APP_OPTS中增加JVM参数:

-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80

-XX:+UseParNewGC #缺省#
设置年轻代为并行收集。可与CMS收集同时使用。
JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。

-XX:+UseConcMarkSweepGC #年老代使用并发标记清除GC#

设置年老代为CMS并发收集。
CMS流程:
-- 初始标记(CMS-initial-mark)
-- 并发标记(CMS-concurrent-mark)
-- 重新标记(CMS-remark)
-- 并发清除(CMS-concurrent-sweep)
并发重设状态等待下次CMS的触发(CMS-concurrent-reset)。

老年代使用CMS垃圾收集器:

  1. 特点:以最短回收停顿时间为目标, B/S, 互联网java应用, 重视服务响应速度场景
  2. 收集算法: MS=Mark Sweep
  3. 四步骤:
  • 初始标记(STW) - initMark
  • 并发标记 - concurrentMark
  • 重新标记(STW) - remark
  • 并发清除 - concurrentSweep

-XX:+CMSParallelRemarkEnabled
降低标记停顿
CMS开启并行remark
在使用UseParNewGC的情况下,尽量减少mark的时间

-XX:+UseCMSCompactAtFullCollection #在Full收集时使用CMS压缩#
[kəmˈpækt]v. 把……压实;使简洁;使紧密,压缩;

标记-清除的算法, 在收集结束时, 会有大量碎片空间, 碎片过多, 将会给大内存分配造成麻烦, 不得不提前出发一次 FullGC;

CMS收集器提供了个参数: UseCMSCompactAtFullCollection开关参数(默认即开启), 用于在CMS收集器顶不住要进行FullGC时,开启内存碎片的合并整理过程(无法并发).

这样, 空间碎片虽然没有了, 但是STW停顿不得不变长(但是减少了一次FullGC呀!)

打开对年老代的压缩。可能会影响性能,但是可以消除碎片

-XX:+UseCMSInitiatingOccupancyOnly #仅使用CMS启动占用#
[ˈɑːkjəpənsi]n. 居住/占有/占用
[ɪˈnɪʃieɪt]vt. 开始/创始/发起
表示 CMS GC 只基于 CMSInitiatingOccupancyFraction 触发,
如果未设置该参数则: JVM只会根据 CMSInitiatingOccupancyFraction 触发第一次CMS GC,后续还是会自动触发。

建议同时设置这两个参数。

-XX:CMSInitiatingOccupancyFraction=80 #CMS启动占用分数#

默认老年代使用了68%内存空间以后就会激活, 比较保守,
(若应用中老年代增长不是太快), 可以适当调高参数, 以降低内存回收次数从而获得好的性能;


也可根据实际情况,使用G1作为垃圾收集器:-XX:+UseG1GC;

其他相关:
-XX:+CMSScavengeBeforeRemark
强制remark之前开始一次minor gc,减少remark的暂停时间。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容

  • JVM架构 当一个程序启动之前,它的class会被类装载器装入方法区(Permanent区),执行引擎读取方法区的...
    cocohaifang阅读 1,664评论 0 7
  • 1.垃圾收集器 上图有连线的可以搭配使用如,选ParNew为年轻代收集器,则可选CMS和Serial Old 为老...
    香沙小熊阅读 1,295评论 1 17
  • 转载blog.csdn.net/ning109314/article/details/10411495/ JVM工...
    forever_smile阅读 5,363评论 1 56
  • 0. 前言 JVM笔记系列,以JDK1.7为基准,主要以《深入理解Java虚拟机》(第二版)和《Java虚拟机规范...
    郭寻抚阅读 907评论 0 3
  • Java和C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进来,墙里面的人想出来。 对象...
    胡二囧阅读 1,087评论 0 4