Tomcat配置JVM参数优化

浏览: 5408

大型系统采用Tomcat默认设置是无法满足生产环境对性能的需求,现在给出Tomcat jvm参数优化参考配置

linux版本

4核及以上

JAVA_OPTS="-Xms8912m -Xmx8912m -XX:PermSize=200M -XX:MaxPermSize=1024M -XX:MaxDirectMemorySize=1024M -XX:SurvivorRatio=6 -XX:NewRatio=4 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:PretenureSizeThreshold=5242880 -XX:MaxTenuringThreshold=50 -XX:CMSInitiatingOccupancyFraction=80 -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseTLAB"

4核以下

JAVA_OPTS="-Xms8912m -Xmx8912m -XX:PermSize=200M -XX:MaxPermSize=1024M -XX:MaxDirectMemorySize=1024M -XX:SurvivorRatio=6 -XX:NewRatio=4 -XX:+DisableExplicitGC -XX:PretenureSizeThreshold=5242880 -XX:MaxTenuringThreshold=50 -XX:+UseTLAB"

Windows版本

4核及以上

set JAVA_OPTS=-Xms8912m -Xmx8912m -XX:PermSize=200M -XX:MaxPermSize=1024M -XX:MaxDirectMemorySize=1024M -XX:SurvivorRatio=6 -XX:NewRatio=4 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:PretenureSizeThreshold=5242880 -XX:MaxTenuringThreshold=50 -XX:CMSInitiatingOccupancyFraction=80 -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseTLAB

4核以下

set JAVA_OPTS=-Xms8912m -Xmx8912m -XX:PermSize=200M -XX:MaxPermSize=1024M -XX:MaxDirectMemorySize=1024M -XX:SurvivorRatio=6 -XX:NewRatio=4 -XX:+DisableExplicitGC -XX:PretenureSizeThreshold=5242880 -XX:MaxTenuringThreshold=50 -XX:+UseTLAB

将以上脚本写入tomcat安装目录\bin\catalina.sh或catalina.bat中的有效脚本第一行。


参数说明:

Xms:堆初始内存大小

Xmx:堆最大内存大小

XX:PermSize方法区初始内存大小

XX:MaxPermSize方法区最大内存大小

XX:MaxDirectMemorySize虚拟机可以使用本地内存大小

内存分配规则:

1.堆初始内存和堆最大内存一样大。

2.方法区初始内存不小于200M,方法区最大内存不大于1G。

3.服务器内存分配比例

如果Tomcat和数据库安装在同一台服务器上,堆、虚拟机可以使用本地内存、本地内存、数据库比例为5:1:2:2。以16G内存为例,堆8G(方法区最大1G,初始200M)、虚拟机可以使用本地内存1.6G、本地内存3.2G、数据库3.2G,剩余内存可以分配给堆和数据库。

如果Tomcat单独安装在同一台服务器上,堆、虚拟机可以使用本地内存、本地内存比例为6:1:3。以16G内存为例,堆9G(方法区最大1G,初始200M)、虚拟机可以使用本地内存1.6G、本地内存4.8G,剩余内存可以分配给堆。

以上规则可以根据实际情况做调整。

该配置方案需要运行在至少4核CPU(最好16核CPU)的服务器上、jdk1.6u40以后版本。

推荐 2
本文由 梁勇 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

Tomcat和数据库安装在同一台服务器上,64G内存 如何分配

要回复文章请先登录注册