本文转自
tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless
在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -Djava.awt.headless=true"
-Xms256m JVM初始分配的堆内存, 生产环境建议与Xmx相同, 设为1024m以上
-Xmx512m JVM最大允许分配的堆内存, 生产环境建议设为1024m以上
-Xss128k 线程堆栈大小, JDK5以上一般设置为256k或以上, 与 -XX:ThreadStackSize 的区别
The former is a standard option
-Xss is standard options recognized by the Java HotSpot VM.
-XX:ThreadStackSize as other -XX options are not stable and are subject to change without notice.
They parse arguments differently
-Xss may accept a number with K, M or G suffix;
-XX:ThreadStackSize= expects an integer (without suffix) - the stack size in kilobytes.
-XX:PermSize=64m JVM初始分配的非堆内存, 不会被回收, 生产环境建议与maxPermSize相同, 设为256m以上
-XX:MaxNewSize=512m JVM堆区域新生代内存的最大可分配大小(PermSize不属于堆区), 生产环境建议设为800M-1024M
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存, 生产环境建议设置为256m以上
-Xmn512m 是上面两个的快捷定义方式, 等同于上面两个都为512m
https://blogs.oracle.com/jonthecollector/entry/the_second_most_important_gc
The flag -XmnNNN is equivalent to -XX:NewSize=NNN and -XX:MaxNewSize=NNN
NewRatio gives you a way to scale the young generation size with the total heap size.
NewSize and MaxNewSize give you precise control.
-Xmn is a convenience
最大堆内存与最大非堆内存之和受操作系统限制
CATALINA_OPTS="-server -Xms1024M -Xmx1024M -Xss512k -XX:PermSize=64M -XX:MaxPermSize=300M -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=75 "
详细参数说明
参数名称 | 含义 | 默认值 | |
-Xms | 初始堆大小 | 物理内存的1/64(<1GB) | 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. |
-Xmx | 最大堆大小 | 物理内存的1/4(<1GB) | 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 |
-Xmn | 年轻代大小(1.4or lator) | 注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小. 增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 |
|