【專欄目錄】
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。注意,兩個倖存區永遠一樣大。 |