文档章节

内存溢出及TOMCAT内存设置

xinlll
 xinlll
发布于 2012/11/05 22:35
字数 646
阅读 92
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Tomcat的内存设置(Tomcat java.lang.OutOfMemoryErro(2009-10-09 17:18:15)
标签:it   

Tomcat的内存设置(Tomcat java.lang.OutOfMemoryError )

 

如果是安装版的,那么在bin目录中有tomcat6w.exe文件,在其中设置。

 

vi /opt/apache-tomcat-6.0.14/bin/catalina.sh

#   JAVA_OPTS       (Optional) Java runtime options used when the "start",
#    "stop", or "run" command is executed.
下加入
export JAVA_OPTS="-server -Xms512m -Xmx1024m"

原因:
      PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法:

1. 手动设置MaxPermSize大小
      修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

catalina.sh下为:
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"


2. 将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。


如果遇到这个异常:java.lang.OutOfMemoryError: Java heap space 是什么原因呢?

解释:
Heap size 设置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

解决方法:
      手动设置Heap size
      修改TOMCAT_HOME/bin/catalina.bat,在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m   -XX:MaxNewSize=256m

或修改catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"

 

PS : 在ECLIPSE中修改TOMCAT内存:

window->preferences->myeclipse->applicationserver->tomcat5->jdk->optionaljavajvmarguments
加上-Xms256m -Xmx800m -XX:PermSize=128M
-XX:MaxPermSize=256M

 

© 著作权归作者所有

xinlll
粉丝 1
博文 28
码字总数 13920
作品 0
广州
私信 提问
linux/centos 解决Tomcat内存溢出,centostomcat

linux/centos 解决Tomcat内存溢出,centostomcat Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给APP。当APP需要...

空灵飞渡
2016/08/11
95
0
60扩展:tomcat虚拟主机

1、有时候tomcat虚拟主机在在自建目录文件docBase里,重启无法启动的: 注释:Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就...

芬野de博客
2018/09/01
23
0
linux/centos解决Tomcat内存溢出

Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给APP。当APP需要的内存超出内存的最大值时虚拟机就会提示内存溢出...

宛珩
2016/02/16
370
0
报表性能优化方案之多种报表服务器内存修改方法

服务器内存修改 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。 JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 示例工具...

九月你好123
2015/09/14
194
0
Java内存溢出详解+Tomcat配置文件中JVM的启动参数设置

一、常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/6...

nearzk-osc
2015/07/30
277
0

没有更多内容

加载失败,请刷新页面

加载更多

006-ELK的二进制安装

二进制安装ELKstack 本次搭建属于单点,在同一台机器上进行安装 基础组件部署 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yu...

伟大源于勇敢的开始
今天
5
0
OSChina 周四乱弹 —— 浙江台的电话号码倒是记得挺牢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Out On The Streets》 一直不理解北欧人对重金属和死亡摇滚的热情,听完这首歌好像理解了。#今日歌曲推荐# 《Out On The Stre...

小小编辑
今天
14
0
Leetcode PHP题解--D121 21. Merge Two Sorted Lists

D121 21. Merge Two Sorted Lists 题目链接 21. Merge Two Sorted Lists 题目分析 合并两个有序链表。 思路 逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。 最终代码 <?php/** *...

skys215
今天
6
0
mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
今天
15
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部