JVM调优之Tomcat启动参数配置及详解

开发项目中会遇到Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的问题,通过查找资料找到是通过设置Tomcat 启动堆空间大小、年轻代大小、每个线程大小参数进行调优的,具体如下:

一、在Tomcat 启动脚本(catalina.sh/catalina.bat)首行添加如下配置即可解决此问题

    JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=512m"

    1:-Xms 堆空间初始大小

    2:-Xmx 堆空间最大数值

    3:-Xmn 年轻代的堆大小

    4:-Xss    每个线程堆大小

二、JVM堆大小的默认最大和最小值(参考)

操作系统及JVM类型初始堆的大小(Xms)最大堆的大小(Xmx)
Linux/Solaris,32位客户端16MB256MB
Linux/Solaris,32位服务器64MB取1GB和物理内存大小1/4二者中的最小值
Linux/Solaris,64位服务器取512MB和物理内存大小1/64二者中的最小值取32GB和物理内存大小1/4二者中的最小值
MacOS,64位服务器型JVM64MB取1GB和物理内存大小1/4二者中的最小值
32位Window系统,客户端型JVM16MB

256MB

64位Window系统,客户端型JVM64MB

1GB和物理内存大小1/4二者中的最小值

三、一般性调优办法

    -Xmx 和-Xms 一般设置为一样大小,这样能稍微提高GC的运行效率,因为他/她不再需要估算堆是否需要调整大小了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值