1. 概述
1.1 问题描述
Java 应用程序运行过程中会使用 Web 应用服务器的内存,如执行报表获取的数据、运算的中间数据等都需要暂存在服务器内存中。当服务器没有空内存可用时,就会出现内存溢出错误。
1.2 解决思路
修改%JBoss_HOME%\bin目录下standalone.conf.bat文件。
1.3 注意点
1)如果遇到有 java.lang.OutOfMemoryError: PermGen space 这种异常抛错,可以在所有修改内存的地方加上一个命令语句:-XX:MaxPermSize=256m 来进行限制。
2)-Xms:java Heap 初始大小,默认是物理内存的 1/64;-Xmx:java heap 最大值,默认是物理内存的1/4;建议 Xms 值和 Xmx 值相同。
3)服务器的 Xmx 参数值,建议 8GB <= Xmx < =32 GB;用户可在 平台系统检查处 查看推荐的「堆内内存」大小(Xmx 值)。
2. 操作步骤
本文以修改 Windows 系统下 WildFly-10.1.0 内存为例。
1)将%JBoss_HOME%\bin目录下standalone.conf.bat文件中的相应内存参数设置为所需值即可。如下图所示:
2)双击%JBoss_HOME%\bin\standalone.bat,重启 WildFly 。
管理员进入平台,选择「管理系统>智能运维>内存管理」,可以看到实时内存情况。如下图所示: