JVM調(diào)優(yōu)的幾種策略 |奧遠(yuǎn)科技是專(zhuān)注于信息化建設(shè)與互聯(lián)網(wǎng)產(chǎn)品開(kāi)發(fā)的高新科技企業(yè),主要服務(wù)于百?gòu)?qiáng)企業(yè)、上市公司、大型集團(tuán)網(wǎng)站建設(shè)。承接大型電商網(wǎng)站、復(fù)雜功能型網(wǎng)站、APP、微信、小程序,oa辦公管理系統(tǒng),ERP管理系統(tǒng)開(kāi)發(fā)。為客戶(hù)提供一站式網(wǎng)絡(luò)營(yíng)銷(xiāo)解決方案,全國(guó)統(tǒng)一客服熱線:4000-880-989。 "> JVM調(diào)優(yōu)的幾種策略 |>JVM調(diào)優(yōu)的幾種策略 ">

欧美成人一区二区三区在线观看_国产在线精品二区_国产午夜精品一区理论片飘花_97影院理论片手机在线观看_无码高潮少妇毛多水多水免费

技術(shù)中心

這里象征著我們的態(tài)度和能力

>JVM調(diào)優(yōu)的幾種策略
作者:中國(guó)IT實(shí)驗(yàn)室    來(lái)源:中國(guó)IT實(shí)驗(yàn)室    發(fā)布時(shí)間:2012-09-14      瀏覽次數(shù):11054
分享到:
歡迎進(jìn)入Java社區(qū)論壇,與200萬(wàn)技術(shù)人員互動(dòng)交流 >>進(jìn)入
    JVM參數(shù)調(diào)優(yōu)是一個(gè)很頭痛的問(wèn)題,可能和應(yīng)用有關(guān)系,別人說(shuō)可以的對(duì)自己不一定管用。下面是本人一些JVM調(diào)優(yōu)的實(shí)踐經(jīng)驗(yàn),希望對(duì)讀者能有幫助,環(huán)境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G內(nèi)存,dell2950服務(wù)器
   
    JVM調(diào)優(yōu)
   
    一:JVM調(diào)優(yōu)之串行垃圾回收
   
    也就是默認(rèn)配置,完成10萬(wàn)request用時(shí)153秒。JVM參數(shù)配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server
   
    -Xms2048M-Xmx2048M-Xmn512M
   
    -XX:PermSize=256M-XX:MaxPermSize=256M
   
    -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19
   
    -Xnoclassgc-Xloggc:log/gc.log
   
    -XX:+PrintGCDetails-XX:+PrintGCTimeStamps”;
   
    這種配置一般在resin啟動(dòng)24小時(shí)內(nèi)似乎沒(méi)有大問(wèn)題,網(wǎng)站可以正常訪問(wèn),但查看日志發(fā)現(xiàn),在接近24小時(shí)時(shí),F(xiàn)ullGC執(zhí)行越來(lái)越頻繁,大約每隔3分鐘就有一次FullGC,每次FullGC系統(tǒng)會(huì)停頓6秒左右,作為一個(gè)網(wǎng)站來(lái)說(shuō),用戶(hù)等待6秒恐怕太長(zhǎng)了,所以這種方式有待改善。MaxTenuringThreshold=7表示一個(gè)對(duì)象如果在救助空間移動(dòng)7次還沒(méi)有被回收就放入年老代,GCTimeRatio=19表示java可以用5%的時(shí)間來(lái)做垃圾回收,1/(1+19)=1/20=5%.
   
    二:JVM調(diào)優(yōu)之并行回收
   
    完成10萬(wàn)request用時(shí)117秒,配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server-Xmx2048M
   
    -Xms2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M
   
    -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails
   
    -XX:+PrintGCTimeStamps-XX:+UseParallelGC-XX:ParallelGCThreads=20
   
    -XX:+UseParallelOldGC-XX:MaxGCPauseMillis=500
   
    -XX:+UseAdaptiveSizePolicy-XX:MaxTenuringThreshold=7
   
    -XX:GCTimeRatio=19”;
   
    并行回收我嘗試過(guò)多種組合配置,似乎都沒(méi)什么用,resin啟動(dòng)3小時(shí)左右就會(huì)停頓,時(shí)間超過(guò)10秒。也有可能是參數(shù)設(shè)置不夠好的原因,MaxGCPauseMillis表示GC最大停頓時(shí)間,在resin剛啟動(dòng)還沒(méi)有執(zhí)行FullGC時(shí)系統(tǒng)是正常的,但一旦執(zhí)行FullGC,MaxGCPauseMillis根本沒(méi)有用,停頓時(shí)間可能超過(guò)20秒,之后會(huì)發(fā)生什么我也不再關(guān)心了,趕緊重啟resin,嘗試其他回收策略。
   
    三:JVM調(diào)優(yōu)之并發(fā)回收
   
    完成10萬(wàn)request用時(shí)60秒,比并行回收差不多快一倍,是默認(rèn)回收策略性能的2.5倍,配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server
   
    -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M
   
    -XX:MaxPermSize=256M-XX:+UseConcMarkSweepGC
   
    -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19
   
    -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails
   
    -XX:+PrintGCTimeStamps-XX:+UseCMSCompactAtFullCollection
   
    -XX:CMSFullGCsBeforeCompaction=0”;
   
    這個(gè)配置雖然不會(huì)出現(xiàn)10秒連不上的情況,但系統(tǒng)重啟3個(gè)小時(shí)左右,每隔幾分鐘就會(huì)有5秒連不上的情況,查看gc.log,發(fā)現(xiàn)在執(zhí)行ParNewGC時(shí)有個(gè)promotionfailed錯(cuò)誤,從而轉(zhuǎn)向執(zhí)行FullGC,造成系統(tǒng)停頓,而且會(huì)很頻繁,每隔幾分鐘就有一次,所以還得改善。UseCMSCompactAtFullCollection是表是執(zhí)行FullGC后對(duì)內(nèi)存進(jìn)行整理壓縮,免得產(chǎn)生內(nèi)存碎片,CMSFullGCsBeforeCompaction=N表示執(zhí)行N次FullGC后執(zhí)行內(nèi)存壓縮。
   
    四:JVM調(diào)優(yōu)之增量回收
   
    完成10萬(wàn)request用時(shí)171秒,太慢了,配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server
   
    -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M
   
    -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7
   
    -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log
   
    -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-Xincgc”;
   
    似乎回收得也不太干凈,而且也對(duì)性能有較大影響,不值得試。
   
    五:JVM調(diào)優(yōu)之并發(fā)回收的I-CMS模式
   
    和增量回收差不多,完成10萬(wàn)request用時(shí)170秒。配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server
   
    -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M
   
    -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7
   
    -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log
   
    -XX:+PrintGCDetails-XX:+PrintGCTimeStamps
   
    -XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode
   
    -XX:+CMSIncrementalPacing
   
    -XX:CMSIncrementalDutyCycleMin=0
   
    -XX:CMSIncrementalDutyCycle=10-XX:-TraceClassUnloading”;
   
    采用了sun推薦的參數(shù),回收效果不好,照樣有停頓,數(shù)小時(shí)之內(nèi)就會(huì)頻繁出現(xiàn)停頓,什么sun推薦的參數(shù),照樣不好使。
   
    六:JVM調(diào)優(yōu)之遞增式低暫停收集器
   
    又叫什么火車(chē)式回收,完成10萬(wàn)request用時(shí)153秒,配置如下:
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server
   
    -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M
   
    -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7
   
    -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log
   
    -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+UseTrainGC”;
   
    該配置效果也不好,影響性能,所以沒(méi)試。
   
    七:相比之下,還是并發(fā)回收比較好,性能比較高,只要能解決ParNewGC(并行回收年輕代)時(shí)的promotionfailed錯(cuò)誤就一切好辦了,查了很多文章,發(fā)現(xiàn)引起promotionfailed錯(cuò)誤的原因是CMS來(lái)不及回收(CMS默認(rèn)在年老代占到90%左右才會(huì)執(zhí)行),年老代又沒(méi)有足夠的空間供GC把一些活的對(duì)象從年輕代移到年老代,所以執(zhí)行FullGC.CMSInitiatingOccupancyFraction=70表示年老代占到約70%時(shí)就開(kāi)始執(zhí)行CMS,這樣就不會(huì)出現(xiàn)FullGC了。SoftRefLRUPolicyMSPerMB這個(gè)參數(shù)也是我認(rèn)為比較有用的,官方解釋是softlyreachableobjectswillremainaliveforsomeamountoftimeafterthelasttimetheywerereferenced.Thedefaultvalueisonesecondoflifetimeperfreemegabyteintheheap,我覺(jué)得沒(méi)必要等1秒,所以設(shè)置成0.配置如下
   
    $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-server-Xms2048M
   
    -Xmx2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M
   
    -XX:SurvivorRatio=8-XX:MaxTenuringThreshold=7
   
    -XX:GCTimeRatio=19-Xnoclassgc-XX:+DisableExplicitGC
   
    -XX:+UseParNewGC-XX:+UseConcMarkSweepGC
   
    -XX:+CMSPermGenSweepingEnabled
   
    -XX:+UseCMSCompactAtFullCollection
   
    -XX:CMSFullGCsBeforeCompaction=0
   
    -XX:+CMSClassUnloadingEnabled-XX:-CMSParallelRemarkEnabled
   
    -XX:CMSInitiatingOccupancyFraction=70
   
    -XX:SoftRefLRUPolicyMSPerMB=0-XX:+PrintClassHistogram
   
    -XX:+PrintGCDetails-XX:+PrintGCTimeStamps
   
    -XX:+PrintGCApplicationConcurrentTime
   
    -XX:+PrintGCApplicationStoppedTime
   
    -Xloggc:log/gc.log”;
   
    上面這個(gè)配置內(nèi)存上升的很慢,24小時(shí)之內(nèi)幾乎沒(méi)有停頓現(xiàn)象,最長(zhǎng)的只停滯了0.8s,ParNewGC每30秒左右才執(zhí)行一次,每次回收約0.2秒,看來(lái)問(wèn)題應(yīng)該暫時(shí)解決了。
?2008-2022 CORPORATION ALL Rights Reserved. 昆明奧遠(yuǎn)科技有限公司版權(quán)所有 滇ICP備09003328號(hào)-1 滇公網(wǎng)安備 53011102000818號(hào) 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證號(hào):滇B2-20110045
昆明那家網(wǎng)絡(luò)公司好,新媒體運(yùn)營(yíng),網(wǎng)站優(yōu)化,網(wǎng)絡(luò)推廣,網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站推廣,云南網(wǎng)站公司,昆明新媒體公司,云南網(wǎng)紅主播,昆明SEO公司,昆明網(wǎng)站建設(shè),昆明網(wǎng)絡(luò)推廣,昆明網(wǎng)站優(yōu)化,昆明網(wǎng)站推廣,紅河網(wǎng)站建設(shè),大理網(wǎng)絡(luò)公司,曲靖網(wǎng)絡(luò)公司,麗江網(wǎng)站設(shè)計(jì),昭通網(wǎng)絡(luò)公司,保山大數(shù)據(jù)服務(wù),智慧高速建設(shè),智慧校園服務(wù),云南IDC服務(wù)商,網(wǎng)絡(luò)安全測(cè)評(píng),等保測(cè)評(píng),網(wǎng)站關(guān)鍵詞排名優(yōu)化服務(wù),服務(wù)客戶(hù)盡超2000余家,一切盡在奧遠(yuǎn)科技,服務(wù)電話:13888956730
亚洲加勒比久久88色综合| 无码人妻av一二区二区三区| 色情久久久av熟女人妻网站| 蜜臀久久99精品久久久久久| 女人被狂躁c到高潮视频| 欧美精品无码一区二区三区| 久久www免费人成精品| 人妻无码人妻有码中文字幕| 亚洲综合色丁香婷婷六月图片| 成av免费大片黄在线观看| 少妇人妻综合久久中文字幕| 久久人妻精品白浆国产| 无码一区二区三区在线观看| 天天夜碰日日摸日日澡| 曰本极品少妇videossexhd| 情侣做性视频在线播放| 天天躁夜夜躁狠狠是什么心态| 亚洲色大成网站www永久一区| 国产精品99久久精品爆乳| 国产二级一片内射视频播放| 国产激情久久久久久熟女老人av| 精品人妻系列无码人妻漫画| 亚洲av无码一区二区三区四区| 美女黄网站人色视频免费国产| 色综合久久蜜芽国产精品| 亚洲av成人综合五月天在线观看| 国产午夜精品无码| 成人做爰69片免费看网站| 欧美三级欧美成人高清| 亚洲中文字幕无码不卡电影| 亚洲日本va中文字幕久久| 在线а√天堂中文官网| 亚洲日韩v无码中文字幕| 一本一道色欲综合网中文字幕| 97亚洲色欲色欲综合网| 极品老师腿张开粉嫩小泬| 精品国产精品久久一区免费式| 国产中年熟女高潮大集合| 国产在热线精品视频| 午夜无码人妻av大片色欲| 樱花草在线播放免费中文|