Tomcat 内存配置

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 - Code Cache内存池

JVM代码缓存区CodeCache原理及用法解析

CodeCache is full 之暴力解决

JVM中的新生代和老年代(Eden空间、两个Survior空间)

JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)

-XX:SurvivorRatio 命令解释

 日月新

set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=2g -XX:MaxPermSize=2g -Xms4g -Xmx4g -Xss1m -XX:NewRatio=2

你可能感兴趣的:(java,java,windows,jvm)