Tomcat内存溢出及内存设置的方法是什么

发布时间:2022-01-19 16:07:06 作者:iii
来源:亿速云 阅读:294

今天小编给大家分享一下Tomcat内存溢出及内存设置的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

java的内存有不同类型,不同类型的内存溢出,处理方法不同,一定要看清是那种异常。通常会碰到内存溢出异常有下面两种:

PermGen space

PermGen space内存溢出最常见。全称是Permanent Generation space,是指内存的永久保存区域。JDK8废除了PermGen space,可以避免这种类型的内存溢出,也无需设置该项。碰到这种内存溢出建议升级到JDK8,或者设置Perm内存。

Jspxcms的内存设置建议值:

Java heap space

Java heap space是堆内存溢出。碰到这种内存溢出,则需要加大堆内存。

Jspxcms的内存设置建议值:

Java内存类型

java内存的类型分为:堆(Heap)和非堆(Non-heap)内存。

堆(Heap)内存。用于存放运行时产生的数据,如运行时创建的对象、数组等数据。堆内存快被占满时,会启动垃圾回收,释放内存空间。如果没有设置Heap内存,默认是物理内存的1/4。现在内存条容量越来越大,堆内存溢出的情况相对较少。堆内存溢出时,出现的错误信息是:java.lang.OutOfMemoryError: Java heap space。

非堆(Non-heap)内存。就是PermGen。用于存放类的空间。默认是物理内存的1/64。java设计之初,各种程序规模相对较小,java类不多,并且运行时类的数量是固定的,所以该空间默认非常小,并且不进行垃圾回收。随着java的急剧发展,各种类库逐渐增多,java程序也变得越来越庞大,类的数量急速膨胀,默认非堆内存的空间越来越不够用。特别是反射机制与动态代理技术的广泛应用,程序可以在运行时创建类,使得PermGen内存溢出变得更为常见。非堆内存溢出时,出现的错误信息是:java.lang.OutOfMemoryError: PermGen space。

Java的设计者们也看到了这个问题,在jdk8中废除了PermGen,并且可以对存放类信息的空间进行垃圾回收。所以碰到java.lang.OutOfMemoryError: PermGen space异常,最好的办法就是升级到jdk8。

内存设置

不同软件、不同版本、不同情况下的设置方法各有不同。如eclipse的内存设置在eclipse目录下的eclipse.ini文件。

Tomcat解压版Windows平台

修改{TOMCAT_HOME}/bin/catalina.bat,在第二行(即在第一行@echo off之后)插入以下配置:

set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

Tomcat解压版Linux平台

修改TOMCAT_HOME/bin/catalina.sh,在第二行(即在第一行#!/bin/sh之后)插入以下配置:

JAVA_OPTS='-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m'

Tomcat安装版

安装版需要在控制面板里设置。-XX:PermSize=128m -XX:MaxPermSize=512m在Java Options里设置,-Xms256m -Xmx512m分别对应Initial memory pool、Maximum memory pool。

Tomcat内存溢出及内存设置的方法是什么

WebLogic

修改{ORACLE_HOME}/user_projects/domains/base_domain/bin/setDomainEnv.sh(windows环境下是.cmd)

WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_32BIT

if [ "${JAVA_VENDOR}" != "HP" ] ; then
    if [ "${VM_TYPE}" = "HotSpot" ] ; then
        WLS_MEM_ARGS_64BIT="-Xms256m -Xmx1024m"
        export WLS_MEM_ARGS_64BIT
        WLS_MEM_ARGS_32BIT="-Xms256m -Xmx1024m"
        export WLS_MEM_ARGS_32BIT
    fi
fi

Eclipse中使用Maven启动Tomcat

在Eclipse中使用tomcat6:run或tomcat7:run启动Tomcat,需要在Run Configurations - JRE - VM arguments选项中设置。

Tomcat内存溢出及内存设置的方法是什么

以上就是“Tomcat内存溢出及内存设置的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. Tomcat内存溢出的原因
  2. tomcat内存溢出问题解决经历

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tomcat

上一篇:Tomcat JDBC数据库连接池断开重连错误怎么办

下一篇:Jspxcms软件怎么升级

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》