1.JVM的内存设置
在/app/tomcat/apache-tomcat-8.0.38/bin/catalina.sh配置文件的可编辑内容最上面(98 行开始),加上如下内容(具体参数根据你服务器情况自行修改):
JAVA_HOME=/app/jdk
CATALINA_HOME=/app/tomcat/apache-tomcat-8.0.38/
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms6144m -Xmx6144m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
CATALINA_PID=$CATALINA_HOME/catalina.pid
JAVA_HOME=/app/jdk jdk的安装目录
CATALINA_HOME=/app/tomcat/apache-tomcat-8.0.38/ 指定tomcat的安装目录
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms6144m -Xmx6144m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
参数说明
-Dfile.encoding:默认文件编码为utf-8
-server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的
-Xms6144m设置JVM最小内存为6144MB此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmx6144m:设置JVM最大可用内存为6144MB
-XX:NewSize=1024m:设置年轻代大小为1024M
-XX:MaxNewSize=2048m:设置最大的年轻代大小为2048M
-XX:PermSize=512m:设置永久代大小为512m
-XX:MaxTenuringThreshold=10设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
-XX:NewRatio=2设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 2,则年轻代与终身代所占比值为 1:2,年轻代占整个堆栈的 1/4
-XX:+DisableExplicitGC"这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不会触发任何 GC
Linux 修改 /app/tomcat/apache-tomcat-8.0.38/bin/catalina.sh 文件,把下面信息添加到文件第一行。Windows 和 Linux 有点不一样的地方在于,在 Linux 下,下面的的参数值是被引号包围的,而 Windows 不需要引号包围。
如果服务器只运行一个 Tomcat
机子内存如果是 8G,一般 PermSize 配置是主要保证系统能稳定起来就行:
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms6144m -Xmx6144m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX: