做网站的成本有多少,erp财务管理系统,汽车推广软文,温州人才网招聘网官网Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案问题linux的jetty下发布程序后再启动jetty服务时#xff0c;发现启动不了#xff0c;从日志中找到报java.lang.OutOfMemoryError: PermGen space。原因分析PermGen space#xff0c;全…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/jettyJAVA_OPTIONS-Xmx256m -Djava.awt.headlesstrue -Djava.library.path/usr/lib改为可以自己内存情况合理安排JAVA_OPTIONS-Xmx1024m -XX:MaxPermSize1024m -Djava.awt.headlesstrue -Djava.library.path/usr/lib------------------------------------------------------------------------1.参数的含义-vmargs -Xms128M -Xmx512M -XX:PermSize64M -XX:MaxPermSize128M-vmargs 说明后面是VM的参数所以后面的其实都是JVM的参数了-Xms128m JVM初始分配的堆内存-Xmx512m JVM最大允许分配的堆内存按需分配-XX:PermSize64M JVM初始分配的非堆内存-XX:MaxPermSize128M JVM最大允许分配的非堆内存按需分配2.堆内存分配JVM初始分配的堆内存由-Xms指定默认是物理内存的1/64JVM最大分配的堆内存由-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-2GLinux系统下为2G-3G而64bit以上的处理器就不会有限制了。 转载于:https://www.cnblogs.com/wuyida/p/6300875.html