当前位置: 首页 > news >正文

java.lang.OutOfMemoryError: PermGen space

最近公司的网站在manager下重启几次后,老是出现java.lang.OutOfMemoryError: PermGen space,这个错误,但是在网上查了很多都说是需要增大内存.说增大内存就能解决完事了,

但是这个不是太让人信服,我怕我增大之后,还会出现,到时候丢人就丢大了!于是我自己在本机上测试,并且通过,jconsole监控我的jvm,终于找到了点有用的东西! 

 

这个是写的错误报告:

内 存中分 堆内存 和 非堆内存 ,堆内存只要存储的是变量 数据之内的东西, java 的GC会在内存还剩10%左右的时候进行清理, 但是当内存中加 载的数据量过于庞大,如一次从数据库取出过多数据 这个地方会报   OutOfMemoryError: Heap space  错误

在 非堆内存(permanent)中,主要存储类的定义等不怎么变的数据。反复部署应用程序很多遍后,tomcat往往难以处理复杂的类依赖关系, 对 permanent区域的内存回收更是很困难的,最后导致越用越多,几遍之后这个区域就不够用了,而这个区域又是不能增长,并且不会GC...  之后便 会报java.lang.OutOfMemoryError: PermGen space

 

省了些东西(图片你们可以在 java的bin目录下使用jconcole 检测,一样的)

 

我认为原因是:反复部署应用程序很多遍后,tomcat往往难以处理复杂的类依赖关系, 对permanent区域的内存回收更是很困难的,才会报这个错的,

我希望每次的部署完成,能进行tomcat重启,或者加大PermGen space 这块内存,

 

 解决方法: 手动设置MaxPermSize大小
   a.如果tomcat是以bat方式启动的,则如下设置:
   修改TOMCAT_HOME/bin/catalina.sh
   在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
   JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
   b.如果tomcat是注册成了windows服务,以services方式启动的,则需要修改注册表中的相应键值。
    打开注册表,找到目录HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation \Procrun 2.0\htfty\Parameters\Java,其中目录地址中红色标注的(如htfty)需要根据不同情况作修改,为 tomcat服务注册成 windows服务的名称。 可以看到JvmMs和JvmMx项,其中JvmMs设置最小的内存使用参数,JvmMx设置最大的 内存使用参数。设置好JvmMs和JvmMx项的值,重 启tomcat服务器即可生效。
   建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

转载于:https://www.cnblogs.com/qiunet/p/3296496.html

相关文章:

  • 1.揭开消息中间件RabbitMQ的神秘面纱
  • 文本框不够长,显示“XXX...”
  • 统计生成日期为昨天的数据
  • 关于生成器的问题
  • Oracle 调用存储过程执行CRUD的小DEMO
  • webpack 项目实战
  • 做创业狼之前请看看这篇文章
  • json字符串转JSONObject和JSONArray以及取值
  • php计算时间差的方法
  • 前端路由实现-history
  • SQLServer 2008 删除、压缩日志
  • 【51nod1472】取余最大值
  • elasticsearch系列四:搜索详解(搜索API、Query DSL)
  • Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
  • OPENGL学习笔记整理(五):着色语言
  • 深入了解以太坊
  • Angular6错误 Service: No provider for Renderer2
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Meteor的表单提交:Form
  • PHP 7 修改了什么呢 -- 2
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQLServer插入数据
  • webpack入门学习手记(二)
  • 百度小程序遇到的问题
  • 高程读书笔记 第六章 面向对象程序设计
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 简单易用的leetcode开发测试工具(npm)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 微信开放平台全网发布【失败】的几点排查方法
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #define、const、typedef的差别
  • #Z2294. 打印树的直径
  • $jQuery 重写Alert样式方法
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C语言)共用体union的用法举例
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)Eureka服务搭建,服务注册,服务发现
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一) springboot详细介绍
  • (转)C#调用WebService 基础
  • (转)菜鸟学数据库(三)——存储过程
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .cn根服务器被攻击之后
  • .htaccess 强制https 单独排除某个目录
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET开发不可不知、不可不用的辅助类(一)
  • .stream().map与.stream().flatMap的使用
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [android] 天气app布局练习
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [ASP]青辰网络考试管理系统NES X3.5