<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    The NoteBook of EricKong

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

    增加GC相關(guān)選項(xiàng):

    1. -verbose:gc
    2. -XX:+UseGCLogFileRotation
    3. -XX:NumberOfGCLogFiles=5
    4. -XX:GCLogFileSize=512K
    5. -XX:+PrintGCDetails
    6. -XX:+PrintGCTimeStamps
    7. -XX:+PrintGCDateStamps
    8. -XX:+PrintTenuringDistribution
    9. -XX:+PrintGCApplicationStoppedTime
    10. -Xloggc:/var/app/log/Push-server/gc.log
    1. 如果不能確定所需內(nèi)存,使用自動(dòng)jvm自動(dòng)調(diào)優(yōu);
    2. 大致確定所需內(nèi)存后,使用-Xmx -Xms設(shè)置堆大小;
    3. 觀察GC log確定FullGC后剩余堆大小(即為活躍數(shù)據(jù)大小);
    4. 整個(gè)堆大小宜為老年代活躍數(shù)據(jù)大小的3-4倍;
    5. 永久帶大小應(yīng)該比永久帶活躍數(shù)據(jù)大1.2~1.5倍;
    6. 新生代空間應(yīng)該為老年代空間活躍數(shù)據(jù)的1~1.5倍;
    7. 通過top命令觀察棧占用空間、直接內(nèi)存占用空間,決定所需機(jī)器內(nèi)存大小;
    8. 新生代大小決定了Minor GC的周期和時(shí)長,縮短新生代大小可以減少停頓時(shí)長,但是增加了GC頻率;在調(diào)整新生代大小時(shí),盡量保持老年代大小不變;
    9. 老年代大小不應(yīng)該小于活躍數(shù)據(jù)的1.5倍;新生代空間至少為java堆大小的10%;增加堆大小時(shí),注意不要超過可用物理內(nèi)存數(shù);
    10. 從throughput收集器遷移到CMS時(shí),需要將老年代空間增加20%~30%;
    11. 新生代分為Eden和Survivor兩部分,Survivor可以通過-XX:SurvivorRatio=xx來控制,對應(yīng)的大小為-Xmn<value>/(ratio+2)
    12. 通過-XX:MaxTenuringThreshold=<n>來指定晉升閾值(年齡),n為0~15之間;
    13. 期望Survivor空間為剩余總存活對象大小的2倍(age=1;
    14. 注意調(diào)節(jié)Survivor大小時(shí),保持Eden大小不變;
    15. 如果Survivor空間足夠大,且對象大部分并未到達(dá)老年代,那么就可以將晉升年紀(jì)指定的足夠大(15)。在Eden與Survivor之間復(fù)制和CMS老年代空間壓縮之間,我們寧愿選擇前者;
    16. CMS必須能以對象從新生代提升到老年代的同等速度對老年代中的對象進(jìn)行收集,否則,就會(huì)失速;
    17. 如果觀察到'concurrent mode failures',意味著失速已經(jīng)發(fā)生,必須減少-XX:CMSInitiatingOccupancyFraction=<percent>的值;
    18. 使用上述選項(xiàng)的同時(shí),最好同時(shí)使用-XX:+UseCMSInitiatingOccupancyOnly,強(qiáng)制使用該比例,該比例的大小應(yīng)該大于老年代占用空間和活躍數(shù)據(jù)大小之比,一般而言老年代大小*該比例>1.5*老年代活躍數(shù)據(jù)大小
    19. 使用-XX:+ExplicitGCInvokesConcurrentAndUnloadsCloasses可以使用CMS進(jìn)行顯式垃圾回收(System.gc());通過-XX:+DisableExplicitGC關(guān)閉顯示垃圾回收(慎用);
    20. 使用-XX:+CMSClassUnloadingEnabled打開永久帶垃圾回收,使用-XX:+CMSPermGenSweepingEnabled打開CMS對永久帶的掃描;使用-XX:CMSInitiatingPermOccupancyFraction=<perscent>激活回收比例閾值;
    21. 使用-XX:ParallelGCThreads=<n>控制掃描線程數(shù);使用-XX:+CMSScavengeBeforeRemark強(qiáng)制重新標(biāo)記前進(jìn)行一次MinorGC;如果由大量的引用對象或可終結(jié)對象要處理,使用-XX:+ParallelRefProcEnabled
    22. CMS包括Minor GC所帶來的開銷應(yīng)該小于10%;
    23. 如果缺少長時(shí)間調(diào)優(yōu)的條件,安全起見,可以使用G1,僅設(shè)置如下參數(shù)即可:
    1. -d64
    2. -Xmx5g
    3. -Xms5g
    4. -XX:PermSize=100m
    5. -XX:MaxPermSize=100m
    6. -XX:MaxDirectMemorySize=1g
    7. -XX:+UseG1GC
    8. -XX:MaxGCPauseMillis=80

    G1不必明確設(shè)置新生代大小,其自動(dòng)調(diào)優(yōu)也十分可靠,對于停頓時(shí)間往往在長時(shí)間運(yùn)行后可以達(dá)到預(yù)期效果;對吞吐量優(yōu)先的應(yīng)用,可能不是那么明顯。

    posted on 2015-07-23 14:30 Eric_jiang 閱讀(1615) 評論(0)  編輯  收藏 所屬分類: JVM
    主站蜘蛛池模板: 国产又大又黑又粗免费视频| 99久久99热精品免费观看国产| 成人免费午夜在线观看| 亚洲成人动漫在线观看| 在线看片v免费观看视频777| 免费视频精品一区二区三区| 亚洲五月综合缴情在线观看| 一个人免费视频在线观看www| 亚洲va中文字幕无码久久| 男女作爱在线播放免费网站| 久久久久久久亚洲Av无码| 三年片在线观看免费观看大全一| 亚洲av日韩av天堂影片精品| 国产成人va亚洲电影| 亚洲国产精品成人网址天堂 | 国产老女人精品免费视频| 亚洲av无码成人精品区一本二本 | 午夜视频免费观看| 亚洲AV日韩AV永久无码下载| 久久免费观看国产精品88av| 亚洲免费在线视频播放| 99久久精品毛片免费播放| 免费一级毛片不卡在线播放| 亚洲婷婷在线视频| 国产成人免费一区二区三区| 中文字幕免费在线看线人动作大片 | 国产专区一va亚洲v天堂| 亚洲国产精品成人综合久久久| 日本阿v免费费视频完整版| 久久精品蜜芽亚洲国产AV| 毛片网站免费在线观看| 高潮毛片无遮挡高清免费 | 免费看黄视频网站| 黄色a三级三级三级免费看| 久久亚洲国产午夜精品理论片| 久久性生大片免费观看性| 国产成人毛片亚洲精品| 精品国产免费人成网站| 亚洲欧洲日韩综合| 日韩亚洲变态另类中文| 无码一区二区三区免费视频|