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

目录:

1. 概述编辑

FineBI 是一款纯 B/S 端的商业智能分析服务平台,支持通过 Web 应用服务器将其部署在服务器上,提供企业云服务器。

因此对服务器有一定的配置要求,当服务器不能满足 BI 使用时,会出现宕机风险。

FineBI 在部署后需要修改使用内存和其他参数,确保服务器稳定运行。

注:本文主要介绍如何修改内存,其他参数的修改方法,请参考 Java虚拟机检查

2. 内存简介编辑

2.1 内容分类

FineBI使用的物理内存分为 Heap 内存和直接物理内存。

强烈建议物理机/云主机内存至少 16GB,物理内存太小,会严重影响 FineBI 计算性能和系统稳定性。

2.png

FineBI 使用的物理内存 BIMax 要求:BIMax = Xmx + MaxDirectMemorySize + FineIO + Other。为了保障主机稳定性,要求 BIMax <= 用户服务器内存 * 7/8

建议修改的内存相关配置项包括:

内存配置参数
说明建议值
Xmx

指定Java堆的最大内存大小

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

建议:

8GB <= Xmx < 32 GB或者

40GB <= Xmx <= 64GB

注:< 8GB 有宕机风险,32GB ~ 40GB 会导致性能问题,> 64GB 性能差

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

Xms

指定Java堆的初始内存大小

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

建议 Xms = Xmx
Xmn

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

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

建议 Xmn = 1/4 * Xmx
MaxDirectMemorySize堆外NIO内存,指定直接内存(Direct Memory)的最大大小

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

建议 2GB,参考值2~4GB

最小2GB,不限制最大值,但需要考虑用户服务器内存的大小,FineBI 使用的内存(BIMax)<= 用户服务器内存 * 7/8

Dfineio.read_mem_limit

fineIO读内存


建议 2GB
Dfineio.write_mem_limitfineIO写内存建议 1GB

2.2 内存溢出的现象

  • 预览模板时报错内存溢出:java.lang.OutOfMemoryError:Java heap space

  • Tomcat 后台提示 Memory is over threshold

  • 报错:gc overhead

  • 报错:内存溢出

  • 内存占用过高

  • 工程用久了响应速度慢,出现卡顿

  • 预览仪表板经常出现等待排队中

  • 服务器压力大

3. 修改Tomcat下工程内存编辑

3.1 Linux

1)关闭Tomcat服务器。

2)进入%Tomcat_HOME%\bin目录。寻找名为setenv.sh的文件。如果文件不存在,可以创建一个新的setenv.sh文件。

注:请确保setenv.sh文件具有可执行权限。如果没有可执行权限,可以使用以下命令进行设置:chmod +x setenv.sh

3)使用文本编辑器打开setenv.sh文件。在文件中添加/修改以下行来设置:

JAVA_OPTS="$JAVA_OPTS -Xms8192m -Xmx8192m -Xmn2048m"

JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"

JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"

JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"

4)保存并关闭setenv.sh文件。

5)重启Tomcat服务器以使修改生效。

3.2 Windows

1)关闭Tomcat服务器。

2)进入%Tomcat_HOME%\bin目录。寻找名为setenv.bat的文件。如果文件不存在,可以创建一个新的setenv.bat文件。

3)使用文本编辑器打开setenv.bat文件。在文件中添加添加以下行来设置:

set JAVA_OPTS=%JAVA_OPTS% -Xms8192m -Xmx8192m -Xmn2048m

set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g

set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2

set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1

4)保存并关闭setenv.bat文件。

5)重启Tomcat服务器以使修改生效。

4. 修改直接部署的工程内存参数编辑

若工程直接部署在操作系统中,可直接在%FineBI%/bin目录下的配置文件中修改内存的大小。

4.1 Linux/Windows

1)关闭FineBI工程。

2)进入%FineBI_HOME%\bin目录。寻找名为finebi.vmoptions的文件。

3)使用文本编辑器打开finebi.vmoptions文件,添加/修改以下行

-Xms8192m

-Xmx8192m

-Xmn2048m

-XX:MaxDirectMemorySize=2g

-Dfineio.read_mem_limit=2

-Dfineio.write_mem_limit=1

4)保存并关闭文件。重启FineBI工程生效。

4.2 Mac

1)关闭设计器。

2)进入%FR_HOME%\bin目录,右击designer.app,点击「显示包内容」。

3)打开Content/vmoptions.txt文件,添加/修改以下行

-Xms8192m

-Xmx8192m

-Xmn2048m

-XX:MaxDirectMemorySize=2g

-Dfineio.read_mem_limit=2

-Dfineio.write_mem_limit=1

4)保存并关闭文件。重启FineBI工程生效。

5. 修改weblogic下工程内存编辑

5.1 Linux

1)进入WebLogic域(Domain)的bin目录下。寻找setDomainEnv.sh文件。

2)使用文本编辑器打开setDomainEnv.sh文件。在文件中添加以下行来设置:

MEM_ARGS="-Xms8g -Xmx8g -Xmn2g -XX:MaxPermSize=4g -XX:MaxDirectMemorySize=2g"

MEM_ARGS="-Djava.awt.headless=true -Dfineio.read_mem_limit=2 -Dfineio.write_mem_limit=1"

3)保存并关闭setDomainEnv.sh文件

4)重启WebLogic Server以使修改生效。

5.2 Windows

1)进入WebLogic域(Domain)的bin目录下。寻找setDomainEnv.cmd文件。

2)使用文本编辑器打开setDomainEnv.cmd文件。在文件中添加以下行来设置:

set MEM_ARGS=-Xms8g -Xmx8g -Xmn2g -XX:MaxPermSize=4g -XX:MaxDirectMemorySize=2g

set MEM_ARGS=-Djava.awt.headless=true -Dfineio.read_mem_limit=2 -Dfineio.write_mem_limit=1

3)保存并关闭setDomainEnv.cmd文件

4)重启WebLogic Server以使修改生效。

6. 修改WebSphere下工程内存编辑

1)使用管理员凭据登录到 WebSphere 管理控制台。

2)在导航栏,点击「服务器>服务器类型>WebSphere Application Server」。

3)点击需要修改的应用名称,点击「服务器基础结构>Java和进程管理>进程定义」。

4)点击「Java虚拟机」,即可修改初始堆大小和最大堆大小。

5)在「通用 JVM 参数」中,可修改和添加一些JVM参数。

-Xmn2048m -Xss1024k

-XX:MaxDirectMemorySize=2048m

-Dfineio.read_mem_limit=2

-Dfineio.write_mem_limit=1

6)完成修改后,点击「应用」即可保存对服务器配置的更改。

7)重启WebSphere服务器以使修改生效。

7. 修改WildFly下工程内存编辑

1)打开Wildfly安装目录,导航到Wildfly的配置文件目录。在 Wildfly10 及更高版本中,该目录位于standalone/configuration。

2)找到名为standalone.conf(Linux)或standalone.conf.bat(Windows)的文件,并使用文本编辑器打开它。

3)在打开的文件中,可以找到关于JVM设置的部分。在JAVA_OPTS变量中,您可以设置JVM的内存参数。