【专栏目录】
Tomcat底层原理分析:1.基础环境搭建
Tomcat底层原理分析:2.Tomcat架构分析
Tomcat底层原理分析:3.Jasper引擎
Tomcat底层原理分析:4.Tomcatd的server.xml配置内容解析
Tomcat底层原理分析:5.Web应用配置解析
Tomcat底层原理分析:6.Tomcat中对JVM的配置解析
Tomcat底层原理分析:7.Tomcat集群配置解析
Tomcat底层原理分析:8.Tomcat安全性配置解析
Tomcat底层原理分析:9.Tomcat性能调优
【本文导读】
本文需要对JVM有一定了解。
Tomcat的实质也是一个Java应用,所以本文主要讲解一下如何配置Tomcat的JVM。
注:本文图片均来自java进阶教程动手实现Tomcat【黑马程序员精品公开课】,侵权立删。
1.JVM内存模型图
2.JVM配置项
2.1Linux环境下Tomcat配置JVM
# 复制下面内容到catalina.sh文件中
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8
2.2参数详解
参数 | 含义 |
---|---|
-Xms | 堆内存的初始大小 |
-Xmx | 堆内存的最大大小 |
-Xmn | 新生代的内存大小,官方建议是整个堆的3/8 |
-XX:MetaspaceSize | 元空间内存的初始大小,在JDK1.8版本之前配置为:-XX:PermSize(永久代/持久代) |
-XX:MaxMetaspaceSize | 元空间内存的最大大小,在JDK1.8版本之前配置为:-XX:PermSize(永久代/持久代) |
-XX:InitialCodeCacheSize -XX:ReservedCodeCacheSize | 代码缓存区大小 |
-XX:NewRatio | 设置新生代和老年代的比例。好处:新生代的大小可以随着整个堆的大小动态扩展,如-XX:NewRatio=3,则老年代占堆大小的3/4,新生代占堆大小的1/4 |
-XX:SurvivorRatio | 设置伊甸园区(Eden)与幸存区的比例。如-XX:SurvivorRatio=8,则伊甸园区(Eden)的大小是幸存区的8倍,则伊甸园区(Eden)占新生代大小的8/10,幸存区From占1/10,幸存区To占1/10。注意,两个幸存区永远一样大。 |