成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JVM調優的幾種策略

開發 后端
你對JVM調優的概念是否熟悉 ,這里和大家分享一下,主要包括串行垃圾回收,并行回收,并發回收和增量回收等內容,相信本文介紹一定會讓你有所收獲。

JVM參數調優是一個很頭痛的問題,可能和應用有關系,別人說可以的對自己不一定管用。下面是本人一些JVM調優的實踐經驗,希望對讀者能有幫助,環境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G內存,dell2950服務器。

JVM調優

一:JVM調優之串行垃圾回收

也就是默認配置,完成10萬request用時153秒。JVM參數配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2.  
  3. -Xms2048M-Xmx2048M-Xmn512M
  4. -XX:PermSize=256M-XX:MaxPermSize=256M 
  5.  
  6. -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19 
  7.  
  8. -Xnoclassgc-Xloggc:log/gc.log
  9. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps";  

這種配置一般在resin啟動24小時內似乎沒有大問題,網站可以正常訪問,但查看日志發現,在接近24小時時,FullGC執行越來越頻繁,大約每隔3分鐘就有一次FullGC,每次FullGC系統會停頓6秒左右,作為一個網站來說,用戶等待6秒恐怕太長了,所以這種方式有待改善。MaxTenuringThreshold=7表示一個對象如果在救助空間移動7次還沒有被回收就放入年老代,GCTimeRatio=19表示java可以用5%的時間來做垃圾回收,1/(1+19)=1/20=5%。

二:JVM調優之并行回收

完成10萬request用時117秒,配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server-Xmx2048M  
  2. -Xms2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M 
  3. -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails  
  4. -XX:+PrintGCTimeStamps-XX:+UseParallelGC-XX:ParallelGCThreads=20 
  5. -XX:+UseParallelOldGC-XX:MaxGCPauseMillis=500 
  6. -XX:+UseAdaptiveSizePolicy-XX:MaxTenuringThreshold=7 
  7. -XX:GCTimeRatio=19";  

并行回收我嘗試過多種組合配置,似乎都沒什么用,resin啟動3小時左右就會停頓,時間超過10秒。也有可能是參數設置不夠好的原因,MaxGCPauseMillis表示GC***停頓時間,在resin剛啟動還沒有執行FullGC時系統是正常的,但一旦執行FullGC,MaxGCPauseMillis根本沒有用,停頓時間可能超過20秒,之后會發生什么我也不再關心了,趕緊重啟resin,嘗試其他回收策略。

三:JVM調優之并發回收

完成10萬request用時60秒,比并行回收差不多快一倍,是默認回收策略性能的2.5倍,配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2. -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M 
  3. -XX:MaxPermSize=256M-XX:+UseConcMarkSweepGC  
  4. -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19 
  5. -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails  
  6. -XX:+PrintGCTimeStamps-XX:+UseCMSCompactAtFullCollection  
  7. -XX:CMSFullGCsBeforeCompaction=0"; 

這個配置雖然不會出現10秒連不上的情況,但系統重啟3個小時左右,每隔幾分鐘就會有5秒連不上的情況,查看gc.log,發現在執行ParNewGC時有個promotionfailed錯誤,從而轉向執行FullGC,造成系統停頓,而且會很頻繁,每隔幾分鐘就有一次,所以還得改善。UseCMSCompactAtFullCollection是表是執行FullGC后對內存進行整理壓縮,免得產生內存碎片,CMSFullGCsBeforeCompaction=N表示執行N次FullGC后執行內存壓縮。#p#

四:JVM調優之增量回收

完成10萬request用時171秒,太慢了,配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2. -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M 
  3. -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7 
  4. -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log  
  5. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-Xincgc"; 

似乎回收得也不太干凈,而且也對性能有較大影響,不值得試。

五:JVM調優之并發回收的I-CMS模式

和增量回收差不多,完成10萬request用時170秒。配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2. -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M 
  3. -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7 
  4. -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log  
  5. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps  
  6. -XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode  
  7. -XX:+CMSIncrementalPacing  
  8. -XX:CMSIncrementalDutyCycleMin=0 
  9. -XX:CMSIncrementalDutyCycle=10-XX:-TraceClassUnloading"; 

采用了sun推薦的參數,回收效果不好,照樣有停頓,數小時之內就會頻繁出現停頓,什么sun推薦的參數,照樣不好使。

六:JVM調優之遞增式低暫停收集器

又叫什么火車式回收,完成10萬request用時153秒,配置如下: 

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2. -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M 
  3. -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7 
  4. -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log  
  5. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+UseTrainGC"; 

該配置效果也不好,影響性能,所以沒試。

七:相比之下,還是并發回收比較好,性能比較高,只要能解決ParNewGC(并行回收年輕代)時的promotionfailed錯誤就一切好辦了,查了很多文章,發現引起promotionfailed錯誤的原因是CMS來不及回收(CMS默認在年老代占到90%左右才會執行),年老代又沒有足夠的空間供GC把一些活的對象從年輕代移到年老代,所以執行FullGC。CMSInitiatingOccupancyFraction=70表示年老代占到約70%時就開始執行CMS,這樣就不會出現FullGC了。SoftRefLRUPolicyMSPerMB這個參數也是我認為比較有用的,官方解釋是softlyreachableobjectswillremainaliveforsomeamountoftimeafterthelasttime
theywerereferenced.Thedefaultvalueisonesecondo
flifetimeperfreemegabyteintheheap,我覺得沒必要等1秒,所以設置成0。配置如下

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server-Xms2048M  
  2. -Xmx2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M 
  3. -XX:SurvivorRatio=8-XX:MaxTenuringThreshold=7 
  4. -XX:GCTimeRatio=19-Xnoclassgc-XX:+DisableExplicitGC  
  5. -XX:+UseParNewGC-XX:+UseConcMarkSweepGC  
  6. -XX:+CMSPermGenSweepingEnabled  
  7. -XX:+UseCMSCompactAtFullCollection  
  8. -XX:CMSFullGCsBeforeCompaction=0 
  9. -XX:+CMSClassUnloadingEnabled-XX:-CMSParallelRemarkEnabled  
  10. -XX:CMSInitiatingOccupancyFraction=70 
  11. -XX:SoftRefLRUPolicyMSPerMB=0-XX:+PrintClassHistogram  
  12. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps  
  13. -XX:+PrintGCApplicationConcurrentTime  
  14. -XX:+PrintGCApplicationStoppedTime  
  15. -Xloggc:log/gc.log"; 

上面這個配置內存上升的很慢,24小時之內幾乎沒有停頓現象,最長的只停滯了0.8s,ParNewGC每30秒左右才執行一次,每次回收約0.2秒,看來問題應該暫時解決了。

參數不明白的可以上網查,本人認為比較重要的幾個參數是:

-Xms-Xmx-XmnMaxTenuringThresholdGCTimeRatioUse

ConcMarkSweepGCCMSInitiatingOccupancyFractionSoftRefLRUPolicyMSPerMB

eclipse中配置JVM參數:-Xmx1024M-Xms1000M-server-XX:PermSize=64M-XX:MaxPermSize=128m
 

【編輯推薦】

  1. 經驗分享 JVM調優方法總結
  2. JVM調優技巧集錦
  3. 巧解Tomcat中JVM內存溢出問題
  4. 新一代JVM垃圾回收算法出爐
  5. 揭露JDK,JRE,JVM三者不為人知的隱情

 

 

責任編輯:佚名 來源: blog.sina.com.cn
相關推薦

2024-10-15 08:37:08

2012-01-10 14:35:08

JavaJVM

2017-07-21 08:55:13

TomcatJVM容器

2023-11-11 19:07:23

JVMJava

2022-09-20 14:11:37

JVM調優命令

2023-11-10 11:23:20

JVM內存

2010-09-26 13:39:46

JVM調優

2010-09-26 09:08:17

JVM調優

2012-01-10 15:13:56

JavaJVM

2010-09-25 15:52:27

JVM內存JVM

2019-12-20 14:21:26

JVM調優垃圾回收

2021-06-03 08:32:18

JVM調優虛擬機

2017-10-17 14:02:30

jvm調優工具

2017-09-22 15:15:23

jvm調優命令

2021-11-21 23:03:38

jvm調優虛擬機

2024-12-04 15:49:29

2010-03-04 10:56:52

JVM參數

2010-09-25 13:05:07

JVM參數

2010-09-26 10:53:00

JVM內存調優設置

2019-02-19 10:25:28

JVM性能工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品不卡视频 | 日韩精品一区二区三区 | 日韩视频一区在线观看 | 夜夜骑首页 | 日韩欧美国产精品一区二区三区 | 欧美久久一区 | 亚洲色欲色欲www | 亚洲www| 欧美成人免费在线视频 | 婷婷综合色 | 在线播放中文字幕 | 日日综合 | 色黄爽 | 欧美一级在线观看 | 国产伦精品一区二区三毛 | 久久国内精品 | 视频一区二区三区在线观看 | 亚洲精品国产一区 | 能免费看的av | 中文在线观看视频 | 中文二区 | 国产一区二区高清在线 | 国产我和子的乱视频网站 | sese视频在线观看 | 日韩欧美一区二区三区免费观看 | 在线不卡一区 | 狠狠爱网址| 国产一区91精品张津瑜 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 一区二区在线观看免费视频 | 99色视频| 中文在线观看视频 | 久久国品片 | 亚洲久久 | 一区二区三区四区在线视频 | 日批免费在线观看 | 午夜激情视频 | 欧美一区二区三区四区视频 | 欧美日韩一区二区在线 | 中文字幕av在线一二三区 | 黄色成人在线观看 |