通常,我們?yōu)榱吮苊鈨却嬉绯龅葐栴},需要設置環(huán)境變量
JAVA_OPTS -Xms256M -Xmx512M 等,【對于服務器,一般都設置成一樣的】
但是有的時候可能這樣的設置還會不行(比如,當Server應用程序加載較多類時,即jvm加載類時,永久域中的對象急劇增加,從而使jvm不斷調整永久域大小,為了避免調整),你可以使用更多的參數(shù)配置,如: java -Xms512m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m
其中,使用 -XX:MaxPerSize標志來增加永久域的大小,-XX:PerSize標志設置初始值
-XX
基于 Sun 的 Java 2 Standard Edition(J2SE)5 有生成垃圾回收功能,這允許分隔內存池以包含不同時效的對象。垃圾回收循環(huán)根據(jù)時效收集與其他對象彼此獨立的對象。使用其他參數(shù),您可以單獨設置內存池的 大小。為了實現(xiàn)更好的性能,您應該對包含短期存活對象的池的大小進行設置,以使該池中的對象的存活時間不會超過一個垃圾回收循環(huán)。新生成的池的大小由 NewSize 和 MaxNewSize 參數(shù)確定。
第一次垃圾回收循環(huán)中存活下來的對象轉移到另一個池中
。生還者池的大小由參數(shù)
SurvivorRatio 確定。 如果垃圾回收變成了瓶頸,您可以嘗試定制生成池設置
。要監(jiān)控垃圾回收統(tǒng)計信息,使用 Tivoli Performance Viewer 中的對象統(tǒng)計信息或 verbose:gc 配置設置。 輸入下列值:
-XX:NewSize (lower bound)
-XX:MaxNewSize (upper bound)
-XX:SurvivorRatio=NewRatioSize
-XX:NewSize 320m 此值設大可調大新對象區(qū),減少Full GC次數(shù)
-XX:+UseParNewGC :縮短minor收集的時間 可用來設置并行收集【多CPU】
-XX:+ParallelGCThreads 可用來增加并行度【多CPU】
-XX:+UseParallelGC 設置后可以使用并行清除收集器【多CPU】-Xss:每個線程的Stack大小
-verbose:gc 顯示垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
剛剛了解到的一些參數(shù)(待實踐測試)
-Xmn:young generation的heap大小,一般設置為Xmx的3、4分之一
-XX:+UseConcMarkSweepGC :縮短major收集的時間
提示:此選項在Heap Size 比較大而且Major收集時間較長的情況下使用更合適
下面的命令把整個堆設置成128m,新域比率設置成3,即新域與舊域比例為1:3,新域為堆的1/4或32M:
java –Xms128m –Xmx128m –XX:NewRatio =3
缺省值為:NewSize=2m MaxNewSize=32m SurvivorRatio=2。但是,如果 JVM 的堆大小大于 1GB,則應該使用值:-XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16,或者將堆的總大小的 50% 到 60% 分配給新生成的池。
舉例:永久域默認大小為4m。運行程序時,jvm會調整永久域的大小以滿足需要。每次調整時,jvm會對堆進行一次完全的垃圾收集。
使用-XX:MaxPerSize標志來增加永久域的大小
。在WebLogic Server應用程序加載較多類時,經(jīng)常需要增加永久域的最大值
。當jvm加載類時,永久域中的對象急劇增加,從而使jvm不斷調
整永久域大小。為了避免 調整,可使用-XX:PerSize標志設置初始值。
下面把永久域初始值設置成32m,最大值設置成64m。
java -Xms512m -Xmx512m -Xmn128m -XX:PermSize=32m -XX:MaxPermSize=64m
默認狀態(tài)下,HotSpot在新域中使用復制收集器
。該域一般分為三個部分。第一部分為Eden,用于生成新的對象。另兩部分稱為救助空間,當Eden充 滿時,收集器停止應用程序,把所有可到達對象復制到當前的from救助空間,一旦當前的from救助空間充滿,收集器則把可到達對象復制到當前的to救助 空間。From和to救助空間互換角色。維持活動的對象將在救助空間不斷復制,直到它們獲得使用期并轉入舊域。使用-XX:SurvivorRatio可 控制新域子空間的大小。
目前,我的的開發(fā)環(huán)境 2G內存,tomcat+eclipse 大型應用程序
java -Xmx1024m -XX:PermSize=512m 基本就ok大部分應用了
我的服務器參數(shù)配置:
MY_PARAMS="-Xmn340m -Xss128k -XX:NewSize=640m -XX:MaxNewSize=640m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParNewGC -Xloggc:gc.log"