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

目录:

1. 概述编辑

FineBI 是一款纯 B/S 端的商业智能分析服务平台;支持通过 Web 应用服务器将其部署在服务器上,提供企业云服务器。因此对服务器有一定的配置要求,当服务器不能满足 BI 使用时,会出现宕机风险。

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

2. 注意事项编辑

  • 在配置参数时,请先结束 BI 进程,修改参数保存后重启 BI 服务器。

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

3. 修改 Xmx 参数编辑

即修改最大堆内内存,保证工程性能稳定。

强烈建议手动配置 Xmx 参数,并且 8GB <= Xmx < 32 GB一定要 < 32GB或者40GB <= Xmx <= 64GB

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

3.1 直接部署修改 Xmx 参数

如果是安装包直接安装 FineBI ,可以直接在%FineBI%/bin目录下的finebi.vmoptions文件中修改内存的大小。

Windows 以及Linux/Unix系统均修改该文件(这里是以 M 为单位)。

3.1.1 Windows 系统

进入 %FineBI%/bin目录下选择 finebi.vmoptions ,如下图所示:

1596433146364755.png

该文件内容为系统默认的内存大小 4018m,可直接修改数值为自身需要的大小,并增加-XX:PerBytecodeRecompilationCutoff=-1 和 -XX:PerMethodRecompilationCutoff=-1参数,如下图所示:

image.png

注1:Xmx与数字之间不要有空格。

注2:增加-XX:PerBytecodeRecompilationCutoff=-1 和 -XX:PerMethodRecompilationCutoff=-1参数是为了避免 JVM 的 Bug,JIT 的 Deoptimization 机制可能会导致运行缓慢。

3.1.2 Linux 系统

注: JVM 内存最小设置为 2048 ,即 2G,否则 FineBI 无法正常运行。

1)进入 %FineBI%/bin目录下选择 finebi.vmoptions,编辑该文件即可。打开文件的命令如下:

cd %FineBI%/bin
vi finebi.vmoptions

image.png

2)对该文档进行编辑,并保存。-Xmx 值表示的是JVM最大可占用的内存,该值的单位默认是M,可以直接改成G单位的值。如-Xmx8G ,并增加-XX:PerBytecodeRecompilationCutoff=-1 和 -XX:PerMethodRecompilationCutoff=-1 参数,如下图所示:

image.png

3)重启服务器。

详情参见:Linux 中启动 FineBI

3.2 部署在 Tomcat 中修改参数

3.2.1 方法一:修改 catalina 文件

修改%Tomcat%/bin目录下的 catalina 文件,添加命令

JAVA_OPTS=-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】
JAVA_OPTS=-XX:PerBytecodeRecompilationCutoff=-1
JAVA_OPTS=-XX:PerMethodRecompilationCutoff=-1

1)Windows 系统下修改 catalina.bat 文件,增加如下命令

set  JAVA_OPTS=-Xms1024m  -Xmx4096m
set  JAVA_OPTS=-XX:PerBytecodeRecompilationCutoff=-1
set   JAVA_OPTS=-XX:PerMethodRecompilationCutoff=-1

2)Linux/Unix修改 catalina.sh 文件,添加的命令如下

JAVA_OPTS="-Xms1024m  -Xmx4096m"
JAVA_OPTS="-XX:PerBytecodeRecompilationCutoff=-1"
JAVA_OPTS="-XX:PerMethodRecompilationCutoff=-1"

如下图所示:

image.png

3.2.2 方法二:修改 Start 文件

可直接修改 start.bat (Windows 系统)或 start.sh(Linux/Unix 系统),修改的方法与 3.2.1 节一致。

3.3 部署在 Weblogic 中修改参数

3.3.1 方法一:修改 startWebLogic 文件

修改 Weblogic 安装目录%Weblogic%/domains/用户工程名/下的 startWebLogic 文件。

1)Windows 系统修改 startWebLogic.bat 文件,增加如下命令

set MEM_ARGS=-Xms1024m –Xmx4096m
set MEM_ARGS=-XX:PerBytecodeRecompilationCutoff=-1
set MEM_ARGS=-XX:PerMethodRecompilationCutoff=-1

2)Linux/Unix 修改 startWebLogic.sh 文件,增加如下命令

MEM_ARGS="-Xms1024m  -Xmx4096m"
MEM_ARGS="-XX:PerBytecodeRecompilationCutoff=-1"
MEM_ARGS="-XX:PerMethodRecompilationCutoff=-1"

3.3.2 方法二:修改 commEnv 文件

修改%Weblogic%/common/bin目录下的 commEnv.bat 或者 commEnv.sh 文件,方法同 3.3.1 节。

3.4 部署在 Websphere 中修改参数

3.4.1 方法一:修改 server.xml 文件

修改 Websphere 安装目录下的配置文件 server.xml 中的 initialHeapSize 参数和 maximumHeapSize 参数,

如下图所示:

222  

注:initialHeapSize----初始化内存;maximumHeapSize----最大可用内存。

3.4.2 方法二:通过控制台修改

在控制台中选择「服务器>应用程序服务器>进程定义>java虚拟机进行设置」,选择 sever1,如下图所示:

1598431278784641.png

点击「java和进程管理>进程定义」,如下图所示:

1598431343423221.png

点击「java虚拟机」,如下图所示:

1598431394256058.png

设置「jvm参数」,设置完确定并保存即可,如下图所示:

1598431460399089.png

3.4.3 增加 JVM 参数

在「通用 JVM 参数」中增加「-PerMethodRecompilationCutoff=-1」和 「-XX:PerMethodRecompilationCutoff=-1」,如下图所示:

image.png

注1:如果遇到有java.lang.OutOfMemoryError: PermGen space 这种异常抛错,可以在所有修改内存的地方加上一个命令语句:-XX:MaxPermSize=256m来进行限制。

注2:所有调整内存的数字都要根据自己的数据量来进行调整。

4. 增加 MaxDirectMemorySize 参数编辑

MaxDirectMemorySize 参数为 NIO 最大堆外内存,若不配置会严重影响 FineBI 计算性能和系统稳定性,强烈建议手动配置该参数,并且至少为 2GB

4.1 直接部署修改参数

如果是安装包直接安装 FineBI ,可以直接在%FineBI%/bin目录下的FineBI.vmoptions文件中修改。Windows 以及Linux/Unix系统均修改该文件(这里是以 M 为单位),如下图所示:

1596504697704553.png

增加参数如下图所示:

-XX:MaxDirectMemorySize=2g

1596504913975067.png

4.2 部署在 Tomcat 中修改参数

配置方式:进入%Tomcat%/bin目录,找到并编辑配置文件 catalina(Windows 修改 catalina.bat文件,Linux/Unix 修改catalina.sh 文件),增加配置:

set JAVA_OPTS=-XX:MaxDirectMemorySize=2g

表示 MaxDirectMemorySize = 2GB,如下图所示:

1590119126368738.png

4.3 部署在 Weblogic 中修改参数

修改 startWebLogic 文件

修改 Weblogic 安装目录%Weblogic%/domains/用户工程名/下的 startWebLogic 文件,增加一条配置

4.3.1 Windows 系统

在 startWebLogic.bat 文件中新增配置:

set  MEM_ARGS=-XX:MaxDirectMemorySize=2g     #表示 MaxDirectMemorySize = 2GB

4.3.2 Linux 系统

在 startWebLogic.sh 文件中新增配置:

MEM_ARGS="-XX:MaxDirectMemorySize=2g"      #表示 MaxDirectMemorySize = 2GB

如下图所示:

1598430089327280.png

配置完成后重启服务器。

4.4 部署在 Websphere 中修改参数

4.4.1 方法一:控制台编辑(推荐)

访问 Websphere 控制台,进入 JAVA 虚拟机配置界面,同本文 3.3.1 节,在输入框中新增 JVM 参数:

-MaxDirectMemorySize=2096

如下图所示:

image.png

4.4.2 方法二:修改配置文件

修改 Websphere 安装目录下的配置文件 server.xml ,在其中新增 JVM 参数:

MaxDirectMemorySize="2096"

如下图所示:

1598432040392617.png

配置完成后重启服务器。

5. 配置其他 JVM 参数编辑

5.1 headless 模式参数

建议开启

5.1.1 单机本地部署配置参数

%FineBI%/bin目录下的 FineBI.vmoptions 文件中增加如下参数即可

-Djava.awt.headless=true

如下图所示:

1590576346814487.png

5.1.2 部署在 Tomcat 中配置参数

配置方式:进入%Tomcat%/bin目录,找到并编辑配置 catalina.sh 文件,增加如下参数:

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"

如下图所示:

1590576653894604.png

注:该参数只有 Linux 环境可以修改。

5.1.3  部署在 Weblogic 中配置参数

在 startWebLogic 文件中增加相应 JVM 参数配置即可。

修改 startWebLogic.sh 文件,增加-Djava.awt.headless=true 配置,如下所示:

JAVA_OPT="${JAVA_OPT} -Djava.awt.headless=true"

配置完成后重启服务器。

5.1.4  部署在 Websphere 中配置参数

方法一:控制台编辑(推荐)

访问 Websphere 控制台,进入 JAVA 虚拟机配置界面,同本文 3.3.1 节,在输入框中新增 JVM 参数:

-Djava.awt.headless=true  

如下图所示:

1598433524708483.png

方法二:修改配置文件

修改 Websphere 安装目录下的配置文件 server.xml ,在其中新增 JVM 参数:

Djava.awt.headless="true"

如下图所示:

1598433610889933.png

配置完成后重启服务器。

5.2 垃圾收集器

建议仅使用默认的 Parallel Scavenge 收集器。

若使用了 CMS(-XX:+UseConcMarkSweepGC) /G1(-XX:+UseG1GC) 收集器,该收集器的 Full GC 是单线程的,可能会导致系统长时间无响应,如非必要,建议去掉「 UseConcMarkSweepGC / UseG1GC 」参数,即可使用默认的 Parallel Scavenge 收集器。

可以通过以下方法查看当前使用的垃圾收集器:

5.2.1 Windows 系统下查看

win+R 进入cmd,命令如下所示:

java -XX:+PrintCommandLineFlags -version

如下图所示:

1599212834745743.png

5.2.2 Linux 系统下查看

输入以下命令

java -XX:+PrintCommandLineFlags -version

如下图所示:

image.png

6. BI 使用的物理内存分类说明编辑

BI 使用的物理内存分为 Heap 内存和直接物理内存,如下图所示:

1590115401754427.png

BI 使用的物理内存 「BIMax = Xmx + MaxDirectMemorySize + FineIO + Other」。为了保障主机稳定性,要求「 BIMax <= 主机物理内存 * 7/8」。