<Connector port="8080"
protocol="HTTP/1.1"
maxHttpHeaderSize="102400000"
maxHttpPostSize="102400000"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="false"/>
catalina.bat
set JAVA_OPTS=%JAVA_OPTS%
-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server
-XX:NewRatio=2
-Xms4g
-Xmx4g
-XX:PermSize=2g
-XX:MaxPermSize=2g
-XX:NewSize=1g
-XX:MaxNewSize=2g
-XX:InitialCodeCacheSize=512M
-XX:ReservedCodeCacheSize=512M
-XX:SurvivorRatio=6
rem -Xmn2g -Xss256k
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -XX:NewRatio=2 -Xms4g -Xmx8g -XX:PermSize=2g -XX:MaxPermSize=8g -XX:NewSize=1g -XX:MaxNewSize=2g -XX:InitialCodeCacheSize=512M -XX:ReservedCodeCacheSize=512M -Xss256k -XX:SurvivorRatio=6
rem -Xmn2g
JVM区域总体分两类,heap区和非heap区。
heap区又分为:
- - Eden Space(新生代)、
- - Survivor Space(幸存者区)、
- - Old Gen(老年代)。
非heap区又分:
- - Code Cache(代码缓存区);
- - Perm Gen(永久代);
- - Jvm Stack(Java虚拟机栈);
- - Local Method Statck(本地方法栈);
内存配置参数介绍说明:
-XX:SurvivorRatio
:控制Eden区域和Survivor区域的内存占用比例。默认值为8
如果JAVA_OPTS为
-Xmn100M
-XX:SurvivorRatio=8
那么Eden:Servivor 的占比为 8:2,Eden占80M,Survivor占20M。
Survivor区域由From幸存区+To幸存区组成,From Survivor和To Survivor各占10M
-XX:NewRatio:默认值为2,意思是为,新生代:老年代=1: 2
-XX:MaxNewSize: JVM堆区域新生代内存的最大可分配大小(PermSize不属于堆区), 生产环境建议设为800M-1024M
更多参见
JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置
JVM中的新生代和老年代(Eden空间、两个Survior空间)
JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
日月新
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=2g -XX:MaxPermSize=2g -Xms4g -Xmx4g -Xss1m -XX:NewRatio=2