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

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

1、在Tomcat 启动脚本(catalina.sh/catalina.bat)首行添加以下配置便可解决此问题服务器

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

    1:-Xms 堆空间初始大小
操作系统

    2:-Xmx 堆空间最大数值
线程

    3:-Xmn 年轻代的堆大小
内存

    4:-Xss    每一个线程堆大小
开发

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

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

256MB效率

64位Window系统,客户端型JVM 64MB

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

3、通常性调优办法

    -Xmx 和-Xms 通常设置为同样大小,这样能稍微提升GC的运行效率,由于他/她再也不须要估算堆是否须要调整大小了

4、暂时没有了。。。

相关文章
相关标签/搜索