zoukankan      html  css  js  c++  java
  • 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位客户端 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二者中的最小值

    三、一般性调优办法

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

  • 相关阅读:
    什么是shell
    shell种类
    centos7 安装JAVA (JDK 1.8) 并配置环境变量
    netcore liunx docker修改默认的Datetime format
    centos 7 安装 mysql 8.0.18
    centos 解决 mysql command not found
    centos 7 + Net Core 3.0 + Docker 配置说明(不含https)
    centos 7 安装golang1.13.5
    centos 7 安装git并配置ssh
    阿里云服务器 centos 7 安装postgresql 11
  • 原文地址:https://www.cnblogs.com/jpfss/p/9722285.html
Copyright © 2011-2022 走看看