歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

JVM參數理解

JVM參數理解

1、JVM的內存

JVM的內存 = 年輕代 + 年老代 + 持久代

-Xms: 設置初始JVM內存大小

-Xmx: 設置最大JVM內存大小

一般講Xms, Xmx設置成一樣的大小,避免超過Xms後,內存重新整理;另外,由於由於jvm進程本身會占用內存空間,所以jvm實際占用的內存空間會比設置的大

-Xmn: 設置年輕代內存大小

年輕代包括兩個區,Edgen 和 Survivor 區,Suvrvior區還被平均分成了兩塊 from space 和 to space,默認情況下 Edgen與2個Survior大小比例 8:2, 即一個survivor占據

1/10的年輕代內存大小。可以通過-XX:SurviorRatio=X 修改Edgen與Survior的大小比例

老年代的大小無法設置,等於 JVM內存-年輕代-持久代;如果未指定-Xmn參數,可以通過-XX:NewRatio=X設置年輕代和年老代的比例,默認1:2, 即年輕代占據除去持久代內存的1/3

-XX:PermSize=256M: 持久代初始內存大小

-XX:MaxPermSize=512M: 最大持久代內存大小,一般不需要設置很大,可以在程序運行一段時間後,通過jconsole進行查看,從而調整持久代的初始值及最大值

2、其它參數

-server: 在linux上默認是開啟的,windows上要手動設置

-XX:+UseG1GC: -Xmx設置超過4g時,建議開啟;一般采用 -XX:+UseConcMarkSweepGC

-Djava.awt.headless=true: 在服務器上使用時,一般開啟

3、舉個例子

1)JAVA_OPTS="$JAVA_OPTS -Xms6g -Xmx6g -Xmn2g -Xss1024K-XX:PermSize=256M -XX:MaxPermSize=1g -Djava.awt.headless=true -XX:+UseG1GC "

2)JAVA_OPTS="$JAVA_OPTS -Xms2g -Xmx2g -Xmn700M -Xss512K -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.awt.headless=true -XX:+UseConcMarkSweepGC"

Copyright © Linux教程網 All Rights Reserved