一、修改tomcatJVM配置

生产环境下,Tomcat并不建议直接在catalina.sh里配置变量,而是写在与catalina同级目录(bin目录)下的setenv.sh里。
image.png
所以如果我们想要修改jvm的内存配置,那么我们就需要修改setenv.sh文件(默认没有,需新建一个setenv.sh)。

二、初始配置

setenv.sh文件中写入(大小根据自己情况修改):setenv.sh内容如下:

export CATALINA_OPTS=”$CATALINA_OPTS -Xms30m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:SurvivorRatio=8”
export CATALINA_OPTS=”$CATALINA_OPTS -Xmx30m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+UseParallelGC”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+PrintGCDetails”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:MetaspaceSize=64m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+PrintGCDateStamps”
export CATALINA_OPTS=”$CATALINA_OPTS -Xloggc:/opt/tomcat8.5/logs/gc.log”

查看日志

image.png
其中存在大量的Full GC日志,查看一下我们Jmeter汇总报告
image.png
吞吐量是866.9/sec

三、优化配置

接下来我们测试另外一组数据,增加初始化和最大内存:
export CATALINA_OPTS=”$CATALINA_OPTS -Xms120m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:SurvivorRatio=8”
export CATALINA_OPTS=”$CATALINA_OPTS -Xmx120m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+UseParallelGC”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+PrintGCDetails”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:MetaspaceSize=64m”
export CATALINA_OPTS=”$CATALINA_OPTS -XX:+PrintGCDateStamps”
export CATALINA_OPTS=”$CATALINA_OPTS -Xloggc:/opt/tomcat8.5/logs/gc.log”

重新启动tomcat,查看gc.log
vi gc.log

查看日志

查找Full关键字,发现只有一处FullGC,如下图所示,我们可以看到,增大了初始化内存和最大内存之后,我们的Full次数有一个明显的减少。
image.png
查看Jmeter汇总报告,如下图所示:吞吐量变成了1142.1/sec,基本上是有一个明显的提升,这就说明,我们增加内存之后,服务器的性能有一个明显的提升,这就是我们本次案例的的演示。
image.png