tomcat默认的参数配置是为开发环境定制的,所以内存和线程的配置都很低,如果直接应用在生产环境,很容易造成性能瓶颈;以下分别从JVM、线程池以及连接参数方面给出优化建议:
1. JVM 优化:
- 当内存为8G时,建议配置:
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"
- 当内存为16G时,建议配置:
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms13312m -Xmx13312m -XX:NewSize=3072m -XX:MaxNewSize=4096m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
- 当内存为32G时,建议配置:
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms29696m -Xmx29696m -XX:NewSize=6144m -XX:MaxNewSize=9216m -XX:PermSize=1024m -XX:MaxPermSize=1024m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
参数解释:
- -Dfile.encoding:默认文件编码
- -server:表示这是应用于服务器的配置,JVM内部会有特殊处理(GC策略,内存分配策略、以及并发处理能力等)
- -Xmx1024m:设置JVM最大可用内存为1024MB
- -Xms1024m:设置JVM最小内存为1024MB.此值可用设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
- -XX:NewSize:设置年轻代大小
- -XX:MaxNewSize:设置最大年轻代大小
- -XX:PermSize