前言
文章内容参考自黑马程序员java教程tomcat专题,本文只是对其中的小部分内容做出学习记录。
tomcat性能调优主要通过以下几方面: jvm内存配置、jvm垃圾回收配置、链接器配置,其实主要还是jvm的配置。b站链接
一、JVM内存配置
1.JVM内存模型图:
2.Tomcat配置内容:
#windows catalina.bat
set JAVA_OPTS=-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8
#linux catalina.sh
JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:SurvivorRatio=8"
3.配置参数描述:
序号 | 参数 | 含义 |
1 | -Xms | 堆内存的初始大小 |
2 | -Xmx | 堆内存的最大大小 |
3 | -Xmn | 新生代的内存大小,官方建议是整个堆的 3/8 |
4 | -XX:MetaspaceSize | 元空间内存初始大小, 在JDK1.8版本之前配 置为 -XX:PermSize(永久代) |
5 | -XX:MaxMetaspaceSize | 元空间内存最大大小, 在JDK1.8版本之前配 置为 -XX:MaxPermSize(永久代) |
6 | -XX:InitialCodeCacheSize - XX:ReservedCodeCacheSize | 代码缓存区大小 |
7 | -XX:NewRatio | 设置新生代和老年代的相对大小比例。这种 方式的优点是新生代大小会随着整个堆大小 动态扩展。如 -XX:NewRatio=3 指定老年代 / 新生代为 3/1。 老年代占堆大小的 3/4,新生 代占 1/4 。 |
8 | -XX:SurvivorRatio | 指定伊甸园区 (Eden) 与幸存区大小比例。如 -XX:SurvivorRatio=10 表示伊甸园区 (Eden) 是 幸存区 To 大小的 10 倍 (也是幸存区 From 的 10 倍)。 所以, 伊甸园区 (Eden) 占新生代 大小的 10/12, 幸存区 From 和幸存区 To 每 个占新生代的 1/12 注意, 两个幸存区永 远是一样大的。 |
二、JVM垃圾回收配置
1.垃圾收集器分类
2.JVM垃圾收集器配置:
3.垃圾回收日志打印配置:
ps:在JAVA_OPTS后追加配置:
#使用cms收集器,并打印gc详细信息
JAVA_OPTS="-XX:+UseConcMarkSweepGC -XX:+PrintGCDetails"
三、链接器配置
1.tomcat链接器配置:
ps:链接器配置在server.xml的Connector标签中。