千家信息网

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

发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,今天小编给大家分享一下Tomcat内存溢出及内存设置的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,
千家信息网最后更新 2025年01月27日Tomcat内存溢出及内存设置的方法是什么

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

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

  • java.lang.OutOfMemoryError: PermGen space

  • java.lang.OutOfMemoryError: Java heap space

PermGen space

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

Jspxcms的内存设置建议值:

  • -XX:PermSize=128M:Perm内存最小值。

  • -XX:MaxPermSize=512M:Perm内存最大值。

Java heap space

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

Jspxcms的内存设置建议值:

  • -Xms256M:Heap内存最小值。

  • -Xmx512M:Heap内存最大值。内存充裕的可以配置为-Xmx1024M

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。

WebLogic

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

WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"export WLS_MEM_ARGS_64BITWLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"export WLS_MEM_ARGS_32BITif [ "${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    fifi

Eclipse中使用Maven启动Tomcat

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

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

内存 不同 空间 类型 方法 知识 篇文章 运行 垃圾 就是 建议 程序 越来越 越来 配置 最大 最小 一行 信息 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重视网络安全有什么意义 协调处理网络安全事件 服务器后台管理器 不履行网络安全保护义务处罚对象 中兴服务器设计手册 国企软件开发一般月薪多少 手抄报防沉迷网络安全主题 电商项目数据库代码 软件开发拍摄素材有什么用 数据库表之间一定要有外键吗 华为东莞软件开发工程师 软件开发市场的危险 AEO认证信息安全云服务器 腾讯2个服务器怎么登陆 高校教务服务器如何管理升级 霍尔果斯游爱网络技术 苏州dns服务器在哪个区 初中能学网络安全 海淀区信息化软件开发好处 网络技术有限公司海报 已知品种数据库建设规程 csharp 数据库编辑器 信息网络安全期刊是中文核心吗 网络安全属于哪个层及 联想软件开发2019 光裕显示服务器连接失败 网页授权登录回调会写入服务器吗 力争补好网络安全发展课 数据库表中数据同步到另一个表 停车软件开发报告
0