1.linux下調節tomcat初始內存大小
linux下tomcat的運行文件為catalina.sh,打開文件,在文件靠近頂部找到“ JAVA_OPTS ”字樣,在它后面添加如下內容即可
# JAVA_OPTS (Optional) Java runtime options used when any command # is executed. # Include here and not in CATALINA_OPTS all options, that # should be used by Tomcat and also by the stop process, # the version command etc. # Most options should go into CATALINA_OPTS. # JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms700m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=512m -XX:MaxPermSize=512m" # JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories # containing some jars in order to allow replacement of APIs # created outside of the JCP (i.e. DOM and SAX from W3C). # It can also be used to update the XML parser implementation. # Defaults to $CATALINA_HOME/endorsed.
2.windows下調節tomcat初始內存大小
windows下tomcat的運行文件為catalina.bat,打開文件,在文件中部找到“rem ----- Execute The Requested Command -----”字樣 ,在它后面添加如下內容即可
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%" rem ----- Execute The Requested Command --------------------------------------- set JAVA_OPTS=%JAVA_OPTS% -server -Xms2048m -Xmx2048m -Xmn512m -XX:PermSize=400m -XX:MaxPermSize=700m echo Using CATALINA_BASE: "%CATALINA_BASE%" echo Using CATALINA_HOME2: "%CATALINA_HOME2%" echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%" if ""%1"" == ""debug"" goto use_jdk echo Using JRE_HOME: "%JRE_HOME%" goto java_dir_displayed :use_jdk echo Using JAVA_HOME: "%JAVA_HOME%" :java_dir_displayed echo Using CLASSPATH: "%CLASSPATH%"
需要注意的是上面各值的大小需要根據服務器本身的內存大小來設置
3.參數說明
堆區:
-Xms 初始堆大小,默認是物理內存的1/64,
-Xmx 最大堆大小,物理內存的1/4,
空余堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空余堆內存大於70%時,JVM會減少堆直到 -Xms的最小限制
因此服務器一般設置-Xms、-Xmx 相等,生產環境建議設為1024m以上
-Xmn 年輕代大小
-XX:NewSize 設置年輕代大小
-XX:MaxNewSize 年輕代最大值
非堆區:
-XX:PermSize 設置持久代(perm gen)初始值(非堆內存初始值),物理內存的1/64
-XX:MaxPermSize 設置持久代最大值(最大非堆內存),物理內存的1/4