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

JVM參數調優技巧總結

開發 后端
本文通過實例向大家描述一下如何進行JVM參數調優,對于很多程序員來說這都是很頭痛的問題,如果設置的不好,JVM不斷執行FullGC,將導致整個系統變得很慢,網站停滯時間能達10秒以上。

你對JVM參數調優的概念了解多少,這里和大家分享一下其方法,如果設置的不好,JVM不斷執行FullGC,將導致整個系統變得很慢,網站停滯時間能達10秒以上,這種情況如果沒隔幾分鐘就來一次,自己都受不了。

JVM參數調優實例解析

關于JVM參數調優,對于很多程序員來說都是很頭痛的問題,如果設置的不好,JVM不斷執行FullGC,將導致整個系統變得很慢,網站停滯時間能達10秒以上,這種情況如果沒隔幾分鐘就來一次,自己都受不了。

這種停滯在測試的時候看不出來,只有網站pv達到數十萬/天的時候問題就暴露出來了,要想配置好JVM參數,需要對年輕代、年老代、救助空間和***代有一定了解,還要了解JVM內存管理邏輯,最終還要根據自己的應用來做調整。關于JVM參數上網一搜就能搜出一大把,也有很多提供實踐的例子,我也按照各種例子測試過,最終還是會出現問題,經過幾個月的實踐改善,我就網站(要求無停滯時間)的jvm參數調優給出以下幾條經驗。

1:建議用64位操作系統,Linux下64位的JDK比32位JDK要慢一些,但是吃得內存更多,吞吐量更大。

2:XMX和XMS設置一樣大,MaxPermSize和MinPermSize設置一樣大,這樣可以減輕伸縮堆大小帶來的壓力。

3:調試的時候設置一些打印參數,如-XX:+PrintClassHistogram-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintHeapAtGC-Xloggc:log/gc.log,這樣可以從gc.log里看出一些端倪出來。

4:系統停頓的時候可能是GC的問題也可能是程序的問題,多用Jmap和Jstack查看,或者killall-3Java,然后查看Java控制臺日志,能看出很多問題。有一次,網站突然很慢,Jstack一看,原來是自己寫的URLConnection連接太多沒有釋放,改一下程序就OK了。

5:仔細了解自己的應用,如果用了緩存,那么年老代應該大一些,緩存的HashMap不應該無限制長,建議采用LRU算法的Map做緩存,LRUMap的***長度也要根據實際情況設定。

6:垃圾回收時PromotionFailed是個很頭痛的問題,一般可能是兩種原因產生,***個原因是救助空間不夠,救助空間里的對象還不應該被移動到年老代,但年輕代又有很多對象需要放入救助空間;第二個原因是年老代沒有足夠的空間接納來自年輕代的對象;這兩種情況都會轉向FullGC,網站停頓時間較長。***個原因我的最終解決辦法是去掉救助空間,設置-XX:SurvivorRatio=65536-XX:MaxTenuringThreshold=0即可,第二個原因我的解決辦法是設置CMSInitiatingOccupancyFraction為某個值(假設70),這樣年老代空間到70%時就開始執行CMS,年老代有足夠的空間接納來自年輕代的對象。

7:不管怎樣,***代還是會逐漸變滿,所以隔三差五重起Java服務器是必要的,我每天都自動重起。

8:采用并發回收時,年輕代小一點,年老代要大,因為年老大用的是并發回收,即使時間長點也不會影響其他程序繼續運行,網站不會停頓,我的最終配置如下(系統8G內存),每天幾百萬PV一點問題都沒有,網站沒有停頓,2009年網站沒有因為內存問題down過機。

  1. $JAVA_ARGS.="-Dresin.home=$SERVER_ROOT-server  
  2. -Xms6000M-Xmx6000M-Xmn500M-XX:PermSize=500M  
  3.  
  4. -XX:MaxPermSize=500M-XX:SurvivorRatio=65536
  5. -XX:MaxTenuringThreshold=0-Xnoclassgc  
  6.  
  7. -XX:+DisableExplicitGC-XX:+UseParNewGC-XX:+UseConcMarkSweepGC  
  8.  
  9. -XX:+UseCMSCompactAtFullCollection-XX:CMSFullGCsBeforeCompaction=0-XX:
  10. +CMSClassUnloadingEnabled-XX:-CMSParallelRemarkEnabled  
  11.  
  12. -XX:CMSInitiatingOccupancyFraction=90
  13. -XX:SoftRefLRUPolicyMSPerMB=0-XX:+PrintClassHistogram  
  14.  
  15. -XX:+PrintGCDetails-XX:+PrintGCTimeStamps
  16. -XX:+PrintHeapAtGC-Xloggc:log/gc.log";  

說明一下,-XX:SurvivorRatio=65536-XX:MaxTenuringThreshold=0就是去掉了救助空間:

◆-Xnoclassgc禁用類垃圾回收,性能會高一點;
◆-XX:+DisableExplicitGC禁止System.gc(),免得程序員誤調用gc方法影響性能;
◆-XX:+UseParNewGC,對年輕代采用多線程并行回收,這樣收得快;帶CMS參數的都是和并發回收相關的。

CMSInitiatingOccupancyFraction

這個JVM參數設置有很大技巧,基本上滿足(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100>=Xmn就不會出現promotionfailed。在我的應用中Xmx是6000,Xmn是500,那么Xmx-Xmn是5500兆,也就是年老代有5500兆,CMSInitiatingOccupancyFraction=90說明年老代到90%滿的時候開始執行對年老代的并發垃圾回收(CMS),這時還剩10%的空間是5500*10%=550兆,所以即使Xmn(也就是年輕代共500兆)里所有對象都搬到年老代里,550兆的空間也足夠了,所以只要滿足上面的公式,就不會出現垃圾回收時的PromotionFailed;

SoftRefLRUPolicyMSPerMB

這個參數我認為可能有點用,官方解釋是softlyreachableobjectswillremainaliveforsomeamountoftimeafterthelasttimetheywerereferenced.

Thedefaultvalueisonesecondoflifetimeperfreemegabyteintheheap,我覺得沒必要等1秒;

網上其他介紹JVM參數的也比較多,估計其中大部分是沒有遇到PromotionFailed,或者訪問量太小沒有機會遇到,(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100>=Xmn這個公式絕對是原創,真遇到PromotionFailed了,還得這么處理。
 

【編輯推薦】

  1. JVM參數調優八大技巧
  2. 解決JVM***內存設置問題
  3. 高手教大家如何配置JVM參數
  4. 詳解Tomcat配置JVM參數步驟
  5. 深入學習JVM內存設置原理和調優

 

 

責任編輯:佚名 來源: xker.com
相關推薦

2012-01-10 14:35:08

JavaJVM

2010-09-17 17:02:24

JVM參數

2010-09-26 09:08:17

JVM調優

2012-01-10 15:13:56

JavaJVM

2021-03-17 11:35:11

JVM代碼Java

2010-03-04 10:56:52

JVM參數

2023-11-10 11:23:20

JVM內存

2010-09-25 15:52:27

JVM內存JVM

2012-01-10 14:18:40

JavaJVM

2019-12-20 14:21:26

JVM調優垃圾回收

2010-09-26 13:48:51

JVM調優

2012-01-09 16:53:36

JavaJVM

2012-01-09 16:02:19

JavaJVM

2017-07-21 08:55:13

TomcatJVM容器

2020-12-30 15:06:39

開發技能代碼

2023-11-11 19:07:23

JVMJava

2022-11-30 08:17:41

JVM調優技巧

2012-01-10 11:19:35

JavaJVM

2012-01-09 17:06:16

JavaJVM

2021-09-06 11:02:17

JVM架構調優
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女视频网站久久 | 中文字幕在线观看一区 | 中文字幕视频在线 | 蜜月aⅴ国产精品 | 亚洲视频一区二区三区 | 国产一区二区三区久久久久久久久 | 成人天堂 | 欧美视频在线免费 | 国产一区欧美一区 | 国产四虎 | 免费在线日韩 | 看av电影 | 色婷婷激情综合 | 99精品一区二区三区 | 91在线资源 | 久久久久久99 | 国产一区二区在线免费观看 | 久久久91 | 天天欧美| 亚洲久久一区 | 成人在线免费观看 | 日本精品视频一区二区 | 欧美一区二区网站 | 午夜视频免费 | 久久精品小视频 | 人成在线视频 | 美女视频一区 | 亚州精品天堂中文字幕 | 亚洲国产成人精品女人久久久 | 日本a级大片 | 日本不卡一区二区三区 | av一级在线观看 | 在线免费观看毛片 | 在线不卡一区 | 噜久寡妇噜噜久久寡妇 | 日韩在线播放网址 | 久久久久成人精品亚洲国产 | 国产精成人 | 91原创视频在线观看 | 国产一区二区三区四区hd | 激情av网站 |