当前位置: 首页 > 编程日记 > 正文

java.lang.OutOfMemoryError: PermGen space及其解决方法

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 2、在tomcat中redeploy时出现outofmemory的错误. 可以有以下几个方面的原因:
 1,使用了proxool,因为proxool内部包含了一个老版本的cglib.
 2, log4j,最好不用,只用common-logging
 3, 老版本的cglib,快点更新到最新版。
 4,更新到最新的hibernate3.2 3、  这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
 一、 java.lang.OutOfMemoryError: PermGen space 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)那么就会产生此错误信息了。
 解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
 建议:将相同的第三方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.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
 三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

转自:http://blog.csdn.net/fengyie007/article/details/1780375

转载于:https://www.cnblogs.com/wumian/articles/2012-12-24-1053.html

相关文章:

ceph-dencoder工具使用详解

文章目录简介使用decode命令用法encode简介 ceph-dencoder工具是一个序列化编码、解码并且打印ceph数据结构的工具。它主要用来调试和测试ceph不同版本之间的兼容性问题 该工具是由 ceph-common-12.2.1.06-0.el7.centos.x86_64 rpm包生成 本文章是根据ceph-12.2.1版本来描述改…

EBS fnd_global.apps_initialize

原型:fnd_global.apps_initialize(user_ID, Responsibility_id,Responsibility_application_id);作用:在数据库的会话中设置全局变量,和用户概要信息。参数获得:参数一,用户ID select user_idfrom fnd_userwhere user_…

js判断鼠标靠近屏幕最侧面的监听_threejs按鼠标位置缩放场景

threejs的orbitcontrol,默认的缩放模式为整体以target为中心进行缩放。有时候,我们想让场景按照鼠标位置进行缩放,体验起来就和地图的缩放一样,最直观的感觉就是整个场景会越来越靠近鼠标点的位置,而不是整体的缩放大小…

hibernate中多对多分解成一对多,

1,参考:http://blog.csdn.net/yaerfeng/article/details/6969632

C++ 函数参数 值传递与引用传递

以前我们在C语言中函数参数传递过程中&#xff0c;如果我们想要让当A函数作用域中的变量经过B函数处理之后的数值仍然在A函数中生效&#xff0c;这个时候函数参数的传递时需要引用方式去传递&#xff0c;方式如下&#xff1a; #include <stdio.h> //函数参数为指针&…

SharePoint 2013 图文开发系列之代码定义列表

在SharePoint的开发中&#xff0c;用Visual Studio自定义列表是经常会用到的&#xff0c;因为很多时候&#xff0c;我们并不会手动创建列表&#xff0c;而手动创建列表在测试服务器和正式机之间同步字段&#xff0c;也很麻烦&#xff0c;所以我们经常用代码来定义列表或者文档库…

arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...

微信关注 “DLGG创客DIY”设为“星标”&#xff0c;重磅干货&#xff0c;第一时间送达。arduino特点库超多&#xff0c;想必大家都领教了&#xff0c;今天来分享一下之前玩过的TRMpcm库。这个库是干嘛用的&#xff1f;简单粗暴用arduino(这里特指arduino官方那几个板子uno、nan…

vim替换技巧4

、 转自&#xff1a;http://www.confay.com/2008/03/vim4.html [技巧一] 第一个是在VIM邮件列表中看到的&#xff0c;给出了一个如何统计文章字数的方法。 统计一个完整文件的字数&#xff0c;可以使用Unix下的wc工具&#xff0c;它能够统计一个文件的行数、单词数和字符数。 如…

spark1.x和2.xIterable和iterator兼容问题

1. spark 1.x 升级到spark 2.x 对于普通的spark来说,变动不大 : 1 举一个最简单的实例:spark1.x public static JavaRDD<String> workJob(JavaRDD<String> spark1Rdd) {JavaPairRDD<String, Integer> testRdd spark1Rdd.flatMapToPair(new PairFlatMapFunct…

C++ 拷贝构造函数和重载赋值运算符的区别

文章目录拷贝构造函数重载赋值运算符赋值运算符和拷贝构造函数最大区别是赋值运算符没有新的对象生成&#xff0c;而拷贝构造函数会生成新的对象。 为了更加形象 准确得描述 赋值运算符和拷贝构造函数得区别&#xff0c;将详细通过代码展示两者之间得差异。 拷贝构造函数 首先…

单元格内多个姓名拆分成一列_EXCEL拆分单元格中的姓名,这都不叫事儿

作者&#xff1a;祝洪忠 转自&#xff1a;Excel之家ExcelHome小伙伴们好啊&#xff0c;今天老祝和大家来分享一个数据整理的技巧。下面的表格形式&#xff0c;想必大家不会陌生吧&#xff1a;在这个表格内&#xff0c;同一个部门的人员名单都挤到一个单元格内。现在问题来了&am…

3.1 A Historical Perspective 历史观点

1.从1978年的8086到现在的2008年core i7 ,从29K个晶体管到781M个晶体管&#xff0c;地址线&#xff08;也叫地址位长&#xff08;bit long))8086只有20个地址线&#xff0c;1982年&#xff0c;MS-windows 使用80286平台开发了自己的windows。直到1985年&#xff0c;i386正式扩展…

idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,

第一种错误 &#xff1a;idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml&#xff0c; 解决方案如下&#xff1a;将maven的安装目录\conf目录下的setting.xml拷贝到C:\Users\lenevo\.m2目录下即可。 第二种错误&#xff1a; This a…

关于部署osd过程中:Device is in use by a device-mapper mapping问题解决

ceph环境&#xff1a;12.2.1 使用古老的ceph-disk工具部署osd,仅仅prepare过程中就出现如上所示问题 Device is in use by a device-mapper mapping md127 解决方法如下&#xff1a; 由于device-mapper为系统自己的磁盘映射器&#xff0c;此时检查系统是否有逻辑卷 pvs lvs vg…

spyder一打开就卡了_欧姆龙plc 用 SD 卡上传/下载程序

以Nx102为例&#xff0c;NJ类似。使用 SD 卡将 Sysmac Studio 编写的程序传入 NX1P2 内&#xff1b; 使用 SD 卡对NX1P2 的程序进行备份&#xff0c; 查看备份的程序&#xff0c; 并把备份的程序传入另一台对应型号的 NX1P2 内。一、 使用 SD 卡将 Sysmac Studio 写的程序传入 …

Unity3D 中 2D_Toolkit插件下载 和 导入方法

Unity3D 中 2D_Toolkit插件下载 和 导入方法 1.你把下载来的包放到 安装目录&#xff1a;Editor\Standard Packages里面。 2.然后按ctrl9&#xff0c;进入asset store&#xff0c;等页面加载。 3.页面加载成功后&#xff0c;如果有账号&#xff0c;就登录&#xff0c;没有账号先…

Emacs 使用YASnippet

<?xml version"1.0" encoding"utf-8"?> Emacs 使用YASnippetUP | HOME Emacs 使用YASnippet Table of Contents 1 安装YASnippent2 安装 org-mode字典3 org-mode中使用教程4 YASnippet增加模板1 安装YASnippent $ cd ~/.emacs.d/plugins $ git c…

ruoyi后台管理系统分析(三)---admin包

三、admin包 --web包 -----controller包 -----------common包 CommonController.java------通用请求处理 package com.ruoyi.web.controller.common;import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import javax.servlet.http.HttpServletRequest;…

ceph-objectstore-tool工具使用详解

文章目录简介使用OSD相关操作PG相关操作对象相关操作总结简介 ceph-objectstore-tool工具&#xff0c;能够操作到ceph最底层的数据&#xff0c;包括pg,对象层级。它能够对底层pg以及对象相关数据进行获取、修改。并能够对一些问题pg和对象进行简单修复。所以使用该工具进行操作…

slf4j导入那个依赖_学习SPRINGBOOT结合日志门面SLF4J和日志实现LOGBACK的混合使用

一、此处主要介绍在springboot工程下如何使用 logback slf4j 进行日志记录。logback主要包含三个组成部分&#xff1a;Loggers(日志记录器)、Appenders(输出目的在)、Layouts(日志输出格式) slf4j &#xff1a;如jdbc一样&#xff0c;定义了一套接口&#xff0c;是一个日志门面…

linux下发布的执行文件崩溃的问题定位 心得一则

C Release版本发布到客户处执行时&#xff0c;如果程序崩溃&#xff0c;有什么办法能够快速的确认程序的问题呢&#xff1f; 如果能gdb调试的话&#xff0c;比较简单了&#xff0c;可以使用gdb命令&#xff0c;类似如下&#xff1a;gdb ##set args ****b mainr#eipx/10i 0xb736…

7 个漂亮的 JavaScript 的时间轴组件 [转]

时间轴&#xff1a;通过互联网技术&#xff0c;依据时间顺序&#xff0c;把一方面或多方面的 时间足迹事件串联起来&#xff0c;形成相对完整的记录体系&#xff0c;再运用图文的形式呈现给用户&#xff1b;时间轴可以运用于不同领域&#xff0c;最大的作用就是把过去的事物系统…

Python 学习笔记: 反射

Python 反射应用 例子1&#xff1a; class Person:def __init__(self, name, age):self.name nameself.age agedef show(self):print(%s \s age is %s%(self.name, self.age))alex Person(alex, 18) # alex.show() if hasattr(alex, show):getattr(alex, show)() 转载于:ht…

C++多线程:互斥变量 std::mutex

文章目录描述成员函数总结描述 头文件 <mutex>使用 std::mutex <variable>简介 mutex是一种多线程变成中的同步原语&#xff0c;它能够让共享数据不被多个线程同时访问&#xff0c;它不支持递归得对互斥对象上锁特点 用方线程从它成功调用 lock 或 try_lock 开始&…

vim替换字符串带斜杠_Vim、gvim操作替换

~ 回复 以下关键词 查看更多IC设计教程 ~目前支持的关键词有&#xff1a;Innovus ICC or IC CompilerDC or Design Compiler PT or PrimeTimeUser Guide or UG LedaVCS Formality工艺节点 …

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...

转&#xff1a;http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据&#xff08;树形导航&#xff09;的webpart开发及问题 1、实现效果如下&#xff1a; 点击各个节点进入相应的链接 2、测试…

智能医疗?轻松实现!

每个中国人都及其关注养老和住房问题&#xff0c;在中国每个人都十分有存钱的意识。就目前来看&#xff0c;现在的医疗和住房保障还没有能够满足我们现在的需求&#xff0c;因而&#xff0c;存钱显得尤为重要。我们关注医疗&#xff0c;是因为每个人都会面临年老&#xff0c;每…

TokuDB vs Innodb 基准测试对比

随着业务的发展以及mysql存储数据量的越来越大&#xff0c;很多超大表不仅仅存储变的不易&#xff0c;维护也变得越来越困难&#xff0c;特别是频繁的ddl操作让运维变得痛苦不堪。当然表拆分可以解决类似的问题&#xff0c;但是对一个稳定的系统来说&#xff0c;表拆分对业务的…

C++ 多线程:互斥对象 lock_gurad

描述 头文件:<mutex>声明方式: template< class Mutex > class lock_guard;简介 lock_guard是一种互斥包装器&#xff0c;它提供了非常便捷的raii资源管控技术用来在对象生存周期内提供互斥锁。 lock_gurad很好得解决了互斥变量mutex的锁成员在函数异常期间无法正…

太TM难看了,我自己都看不下去了

继续研究文件IO。 作用是用System.in输入一个文件路径&#xff0c;然后打印文件里的所有行。 而且虽然没仔细检查过&#xff0c;哦不就是因为没检查过&#xff0c;所以肯定不够健壮。 1 import java.io.*;2 import java.util.Scanner;3 4 public class test {5 public stat…