Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案
问题
linux的jetty下发布程序后再启动jetty服务时,发现启动不了,从日志中找到报java.lang.OutOfMemoryError: PermGen space。

原因分析
PermGen space,全称是Permanent Generation space,指的是内存3带中的永久区域。当java中间件启动时,会将相关的jar包和.class加载到永久区域,而用就区域的空间是固定的,虽然可以设置。报这个错的原因就是在启动加载.class时,永久区域溢出了。

解决方案:
修改jetty的启动脚本:/etc/init.d/jetty
JAVA_OPTIONS="-Xmx256m -Djava.awt.headless=true -Djava.library.path=/usr/lib"
改为:(可以自己内存情况合理安排)
JAVA_OPTIONS="-Xmx1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true -Djava.library.path=/usr/lib"

------------------------------------------------------------------------
1.参数的含义
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

2.堆内存分配
JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。
说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。

3.非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

4.JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,
这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。

转载于:https://www.cnblogs.com/wuyida/p/6300875.html

Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案相关推荐

  1. 在eclipse启动tomcat运行一个web程序,报java.lang.OutOfMemoryError: PermGen space

    错误如下: 2017-3-20 16:41:14 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() ...

  2. Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space

    2019独角兽企业重金招聘Python工程师标准>>> 一.错误信息 java.lang.reflect.InvocationTargetException     at sun.r ...

  3. Eclipse 报java.lang.OutOfMemoryError: PermGen space

    工作时在本机测试环境发布一个web项目,Eclipse报了这个错误,网上搜罗一番,找到以下解决办法,记录一下. 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被 ...

  4. Eclipse 报java.lang.OutOfMemoryError: PermGen space错

    转自:https://blog.csdn.net/naruto0025/article/details/78932293 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loade ...

  5. eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法

    分享一个亲测的网址: http://blog.csdn.net/cuker919/article/details/45246073

  6. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

    见:http://outofmemory.cn/java/OutOfMemoryError/outofmemoryerror-permgen-space-in-tomcat-with-eclipse ...

  7. Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的解决办法

    原文:http://cheen.iteye.com/blog/1687420 Tomcat启动时报如下错误:       java.lang.OutOfMemoryError: PermGen spa ...

  8. Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space

    Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space >>>>>>>>>& ...

  9. java.lang.OutOfMemoryError: PermGen space

    java.lang.OutOfMemoryError: PermGen space 摘要 PermGen space的全称是Permanent Generation space,是指内存的永久保存区域 ...

最新文章

  1. mysql子查询设置_什么是mysql子查询?如何利用子查询进行过滤?
  2. hive内置函数_flink教程flink modules详解之使用hive函数
  3. 一个菜鸟程序员的游戏开发心得
  4. Jenkins-Gitlab配置方法
  5. 手把手实现一条延时消息
  6. 使用路由和远程访问服务为Hyper-V中虚拟机实现NAT上网
  7. WebService应用:音乐站图片上传
  8. 2015 HUAS Provincial Select Contest #2~C
  9. python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...
  10. Linux编辑firmware的文件,Linux中request_firmware 的用法
  11. python类加载_如何重新加载一个类在python shell?
  12. Qt中如何给按钮加图标(背景图片)
  13. 神经网络与深度学习2
  14. Android类参考---Fragment(二)
  15. Java map转JSON
  16. 计算机存储器的容量单位有哪些,存储器容量单位有哪些,它们之间的关系是什么?...
  17. Uniapp微信雪糕刺客单页小程序源码
  18. 用华为手机拍照别直接按快门,先打开这个按钮,效果翻倍堪比单反
  19. 《根道果:禅修的方法与次第》读后感
  20. Windows11安装Android子系统——安装篇

热门文章

  1. 2010年亚运会前广州将大力推广清洁能源公交
  2. [pytorch、学习] - 3.7 softmax回归的简洁实现
  3. dart --- 简单的闭包
  4. 使用mockjs模拟数据
  5. vim中跳到第一行和最后一行
  6. flutter image boxfit
  7. cordova-plugin-app-version插件使用
  8. USB的八个问题和答案(转)
  9. 选好财务软件做好企业管理
  10. 2008年CCNA第二学期第九单元题目(2008-12-14 14:04:38)