1. 概述
FineBI 是一款纯 B/S 端的商业智能分析服务平台,支持通过 Web 应用服务器将其部署在服务器上,提供企业云服务器。
因此对服务器有一定的配置要求,当服务器不能满足 BI 使用时,会出现宕机风险。
FineBI 在部署后需要修改使用内存和其他参数,确保服务器稳定运行。
注:本文主要介绍如何修改内存,其他参数的修改方法,请参考 Java虚拟机检查。
2. 内存简介
2.1 内容分类
FineBI使用的物理内存分为 Heap 内存和直接物理内存。
强烈建议物理机/云主机内存至少 16GB,物理内存太小,会严重影响 FineBI 计算性能和系统稳定性。
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 |
MaxDirectMemorySize | 堆外NIO内存,指定直接内存(Direct Memory)的最大大小 直接内存不受Java堆大小的限制,通过本地内存直接分配,而不是在Java堆中分配 | 建议 4GB 不限制最大值,但需要考虑用户服务器内存的大小,FineBI 使用的内存(BIMax)<= 用户服务器内存 * 7/8 |
Dfineio.read_mem_limit | fineIO读内存 | 建议 2GB |
Dfineio.write_mem_limit | fineIO写内存 | 建议 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"
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
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=4g
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
-XX:MaxDirectMemorySize=4g
-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
-XX:MaxDirectMemorySize=4g
-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 -XX:MaxPermSize=4g -XX:MaxDirectMemorySize=4g"
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 -XX:MaxPermSize=4g -XX:MaxDirectMemorySize=4g
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参数。
-Xss1024k
-XX:MaxDirectMemorySize=4096m
-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的内存参数。