历史版本5 :Resin服务器内存修改 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

Resin 版本
 Resin4.0.58 及以上

1.2 应用场景

Java Servlet 运行于 Web 服务器中,与 Web 服务器融为一体运行在同一个 Java 虚拟机(JVM)当中。Web 服务器加载类需要占用 JVM 内存中的持久代(Perm Generation),Java 应用程序执行报表获取的数据,运算的中间数据等都需要占用 JVM 内存中的堆(heap),当没有内存可用时,就会出现内存溢出错误:java.lang.OutOfMemoryError:PermGen space 或者 java.lang.OutOfMemoryError:Java heap space。

1.3 功能简介

本文简单介绍,修改 Resin 服务器内存等配置项的方法。

注:由于FineReport仅支持部署在 Resin4.0.58 及以上版本,因此本文仅提供该版本以上的相关修改方案,低版本不提供。

2. 修改内存编辑

Resin4版本,管理员通过修改setDomainEnv文件更改内存配置。建议修改的内存配置项包括:

内存配置项
说明建议值
xmx

指定Java堆的最大内存大小

它设置堆的上限,当堆大小达到该值时,JVM将停止分配新的内存并触发垃圾回收

建议 8GB <= Xmx < =32 GB

用户可在 健康巡检 查看推荐的「堆内内存」大小(Xmx 值)

xms

指定Java堆的初始内存大小

它设置堆的初始大小,JVM会在启动时分配该大小的内存

建议 Xms = Xmx
xmn

指定年轻代(Young Generation)的大小

年轻代是堆内存的一部分,用于存放新创建的对象。在垃圾回收过程中,年轻代中的存活对象会被移动到存活区或老年代

建议 Xmn = 1/4 * Xmx
MaxPermSize

指定直接内存(Direct Memory)的最大大小

直接内存不受Java堆大小的限制,通过本地内存直接分配,而不是在Java堆中分配

建议 MaxPermSize =1/2 * Xmx
MaxDirectMemorySize

堆外NIO内存,指定直接内存(Direct Memory)的最大大小

直接内存不受Java堆大小的限制,通过本地内存直接分配,而不是在Java堆中分配

建议 2GB

1)进入%Resin_HOME%\bin目录,寻找resin.xml文件。

2)使用文本编辑器打开resin.xml文件。<cluster id="app">标签内添加以下行来设置:

<server-default>
<jvm-arg>-Xms8192m</jvm-arg>
<jvm-arg>-Xmx8192m</jvm-arg>
<jvm-arg>-Xmn2048m</jvm-arg>
<jvm-arg>-XX:MaxPermSize=2096m</jvm-arg>
<jvm-arg>-XX:MaxDirectMemorySize=2048m</jvm-arg>
</server-default>

3)保存并关闭resin.xml文件

4)重启Resin服务器以使修改生效。