瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理


          官方翻譯文檔見:http://www.cnblogs.com/z-zw/archive/2010/09/30/1839394.html
          通常,我們?yōu)榱吮苊鈨?nèi)存溢出等問題,需要設(shè)置環(huán)境變量
          JAVA_OPTS    -Xms256M -Xmx512M 等,【對于服務(wù)器,一般都設(shè)置成一樣的】
          但是有的時候可能這樣的設(shè)置還會不行(比如,當(dāng)Server應(yīng)用程序加載較多類時,即jvm加載類時,永久域中的對象急劇增加,從而使jvm不斷調(diào)整永久域大小,為了避免調(diào)整),你可以使用更多的參數(shù)配置,如: java -Xms512m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m
          其中,使用   -XX:MaxPerSize標(biāo)志來增加永久域的大小,-XX:PerSize標(biāo)志設(shè)置初始值

          -XX

          基于 Sun 的 Java 2 Standard Edition(J2SE)5 有生成垃圾回收功能,這允許分隔內(nèi)存池以包含不同時效的對象。垃圾回收循環(huán)根據(jù)時效收集與其他對象彼此獨立的對象。使用其他參數(shù),您可以單獨設(shè)置內(nèi)存池的 大小。為了實現(xiàn)更好的性能,您應(yīng)該對包含短期存活對象的池的大小進(jìn)行設(shè)置,以使該池中的對象的存活時間不會超過一個垃圾回收循環(huán)。新生成的池的大小由 NewSize 和 MaxNewSize 參數(shù)確定。

          第一次垃圾回收循環(huán)中存活下來的對象轉(zhuǎn)移到另一個池中。生還者池的大小由參數(shù) SurvivorRatio 確定。 如果垃圾回收變成了瓶頸,您可以嘗試定制生成池設(shè)置。要監(jiān)控垃圾回收統(tǒng)計信息,使用 Tivoli Performance Viewer 中的對象統(tǒng)計信息或 verbose:gc 配置設(shè)置。 輸入下列值:
          -XX:NewSize (lower bound)
          -XX:MaxNewSize (upper bound)
          -XX:SurvivorRatio=NewRatioSize
          -XX:NewSize 320m 此值設(shè)大可調(diào)大新對象區(qū),減少Full GC次數(shù)
          -XX:+UseParNewGC :縮短minor收集的時間 可用來設(shè)置并行收集【多CPU】
          -XX:+ParallelGCThreads 可用來增加并行度【多CPU】
          -XX:+UseParallelGC 設(shè)置后可以使用并行清除收集器【多CPU】-Xss:每個線程的Stack大小

          -verbose:gc 顯示垃圾收集信息
          -Xloggc:gc.log 指定垃圾收集日志文件
          剛剛了解到的一些參數(shù)(待實踐測試)
          -Xmn:young generation的heap大小,一般設(shè)置為Xmx的3、4分之一
          -XX:+UseConcMarkSweepGC :縮短major收集的時間
          提示:此選項在Heap Size 比較大而且Major收集時間較長的情況下使用更合適

          下面的命令把整個堆設(shè)置成128m,新域比率設(shè)置成3,即新域與舊域比例為1:3,新域為堆的1/4或32M:

          java –Xms128m –Xmx128m –XX:NewRatio =3缺省值為:NewSize=2m MaxNewSize=32m SurvivorRatio=2。但是,如果 JVM 的堆大小大于 1GB,則應(yīng)該使用值:-XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16,或者將堆的總大小的 50% 到 60% 分配給新生成的池。

                    舉例:永久域默認(rèn)大小為4m。運行程序時,jvm會調(diào)整永久域的大小以滿足需要。每次調(diào)整時,jvm會對堆進(jìn)行一次完全的垃圾收集。

          使用-XX:MaxPerSize標(biāo)志來增加永久域的大小。在WebLogic Server應(yīng)用程序加載較多類時,經(jīng)常需要增加永久域的最大值。當(dāng)jvm加載類時,永久域中的對象急劇增加,從而使jvm不斷調(diào)整永久域大小。為了避免 調(diào)整,可使用-XX:PerSize標(biāo)志設(shè)置初始值。
             下面把永久域初始值設(shè)置成32m,最大值設(shè)置成64m。
              java -Xms512m -Xmx512m -Xmn128m -XX:PermSize=32m -XX:MaxPermSize=64m

          默認(rèn)狀態(tài)下,HotSpot在新域中使用復(fù)制收集器。該域一般分為三個部分。第一部分為Eden,用于生成新的對象。另兩部分稱為救助空間,當(dāng)Eden充 滿時,收集器停止應(yīng)用程序,把所有可到達(dá)對象復(fù)制到當(dāng)前的from救助空間,一旦當(dāng)前的from救助空間充滿,收集器則把可到達(dá)對象復(fù)制到當(dāng)前的to救助 空間。From和to救助空間互換角色。維持活動的對象將在救助空間不斷復(fù)制,直到它們獲得使用期并轉(zhuǎn)入舊域。使用-XX:SurvivorRatio可 控制新域子空間的大小。

          目前,我的的開發(fā)環(huán)境 2G內(nèi)存,tomcat+eclipse 大型應(yīng)用程序
          java -Xmx1024m -XX:PermSize=512m   基本就ok大部分應(yīng)用了

           

          我的服務(wù)器參數(shù)配置:
          MY_PARAMS="-Xmn340m -Xss128k -XX:NewSize=640m -XX:MaxNewSize=640m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParNewGC -Xloggc:gc.log"

          本文出處:http://hi.baidu.com/china8jie/blog/item/7c4ac1a2e25a9fa5caefd0d1.html

           

          1. 常見配置匯總
          2. 堆設(shè)置
            • -Xms :初始堆大小
            • -Xmx :最大堆大小
            • -XX:NewSize=n :設(shè)置年輕代大小
            • -XX:NewRatio=n: 設(shè)置年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個年輕代年老代和的1/4
            • -XX:SurvivorRatio=n :年輕代中Eden區(qū)與兩個Survivor區(qū)的比值。注意Survivor區(qū)有兩個。如:3,表示Eden:Survivor=3:2,一個Survivor區(qū)占整個年輕代的1/5
            • -XX:MaxPermSize=n :設(shè)置持久代大小
          3. 收集器設(shè)置
            • -XX:+UseSerialGC :設(shè)置串行收集器
            • -XX:+UseParallelGC :設(shè)置并行收集器
            • -XX:+UseParalledlOldGC :設(shè)置并行年老代收集器
            • -XX:+UseConcMarkSweepGC :設(shè)置并發(fā)收集器
          4. 垃圾回收統(tǒng)計信息
            • -XX:+PrintGC
            • -XX:+PrintGCDetails
            • -XX:+PrintGCTimeStamps
            • -Xloggc:filename
          5. 并行收集器設(shè)置
            • -XX:ParallelGCThreads=n :設(shè)置并行收集器收集時使用的CPU數(shù)。并行收集線程數(shù)。
            • -XX:MaxGCPauseMillis=n :設(shè)置并行收集最大暫停時間
            • -XX:GCTimeRatio=n :設(shè)置垃圾回收時間占程序運行時間的百分比。公式為1/(1+n)
          6. 并發(fā)收集器設(shè)置
            • -XX:+CMSIncrementalMode :設(shè)置為增量模式。適用于單CPU情況。
            • -XX:ParallelGCThreads=n :設(shè)置并發(fā)收集器年輕代收集方式為并行收集時,使用的CPU數(shù)。并行收集線程數(shù)。


          主站蜘蛛池模板: 延津县| 富裕县| 洮南市| 封开县| 罗定市| 廉江市| 抚远县| 个旧市| 海兴县| 湘阴县| 方正县| 连城县| 福贡县| 阿克陶县| 江门市| 五华县| 许昌市| 奎屯市| 抚远县| 建平县| 林甸县| 房产| 克山县| 特克斯县| 延吉市| 泰顺县| 遂昌县| 宣化县| 金昌市| 冕宁县| 永定县| 元谋县| 饶平县| 汪清县| 岑溪市| 阿拉善右旗| 礼泉县| 醴陵市| 日喀则市| 深圳市| 吉木乃县|