反馈已提交

网络繁忙

您好,只有最新版本的6.X支持在线编辑修改,如果想创建/编辑文档,请移步到 *最新版本*

修改FineBI配置参数

  • 文档创建者:doreen0813
  • 历史版本:47
  • 最近更新:Leo.Tsai 于 2022-09-30
  • 1. 概述

    1.1 应用场景

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

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

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

    1.2 物理内存说明

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

    2.png

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

    具体介绍如下表所示:

    参数
    Xmx

    8GB <= Xmx < 32 GB(一定要 < 32GB)或者40GB <= Xmx <= 64GB

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

    MaxDirectMemorySize

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

    注:建议参数值为2~4G

    FineIO
    • 2020-01-15 之前版本,FineIO 值与 MaxDirectMemorySize 相同

    • 2020-01-15 至 2020-08-04 版本,若配置 -Dfineio.direct_mem_limit 参数,FineIO 值与其相同;若未配置,默认与 MaxDirectMemorySize 相同

    • 2020-08-04 及之后版本,读内存默认为 2G,写内存默认为 1G,缓存内存默认为 1G(不占实际内存),也就是说,FineIO 默认占用 3G 堆外内存

    Othermin(用户服务器内存/8,6GB)

    注1:在配置参数时,请先结束 BI 进程,修改参数保存后重启 BI 工程。

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

    2. 参数配置


    参数项调整说明建议值修改方式查询命令
    1Max_map_count

    max_map_count限制一个进程可以拥有的 VMA(虚拟内存区域)的数量。

    虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。

    调优这个值将限制进程可拥有 VMA 的数量。

    限制一个进程拥有 VMA 的总数可能导致应用程序出错,因为当进程达到了 VMA 上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。

    vm.max_map_count = 262144执行
    vi /etc/sysctl.conf 
    增加/修改
    vm.max_map_count=262144
    vm.overcommit_memory=0
    vm.overcommit_ratio=50
    保存退出并执行
    sysctl -p

    linux: sysctl vm


    windows不需要配置

    2overcommit_memoryvm.overcommit_memory = 0
    3overcommit_ratiovm.overcommit_ratio = 50 
    4jvm:xmx影响 FineBI 计算性能和系统稳定性

    16g以上31g以下

    堆内存:xms,xmx可以为物理内存的二分之一

    细分的话,可以用gc日志再判断下,一般不建议xmx太大,影响gc性能

    linux环境通过 tomcat/bin/catalina.sh修改参数


    JAVA_OPTS='-Xms16000m -Xmx16000m -XX:MaxDirectMemorySize=2g -Dfineio.read_mem_limit=2 -Dfineio.write_mem_limit=1 -Dfineio.cache_mem_limit=1 -Djava.awt.headless=true -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1 -Duser.language=zh -Duser.country=CN -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=opt/heapdump'

    windows环境通过 tomcat/bin/catalina.bat 修改参数

    set JAVA_OPTS=%JAVA_OPTS% -Xms16g -Xmx16g -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1 -XX:MaxDirectMemorySize=2g -Dfineio.read_mem_limit=2 -Dfineio.write_mem_limit=1 -Dfineio.cache_mem_limit=1 -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump




    5jvm:-Duser.country中英文显示混乱-Duser.country=CN
    6jvm:-Duser.language中英文显示混乱-Duser.language=zh
    7jvm:-Djava.awt.headless

    1、影响 FineBI系统稳定性
    2、影响 Excel导出结果,导出报错

    注:windows环境不需要配置

    -Djava.awt.headless=true
    8jvm:HeapDumpOnOutOfMemoryError该参数可以在内存溢出宕机时自动导出 HeapDump 文件以便详细分析定位宕机原因-XX:+HeapDumpOnOutOfMemoryError
    9jvm:PerBytecodeRecompilationCutoff

    为了避免 JVM 的 Bug,JIT 的 Deoptimization 机制可能会导致运行缓慢

    导致 spider 引擎数据更新缓慢

    -XX:PerBytecodeRecompilationCutoff=-1 
    10jvm:PerMethodRecompilationCutoff导致 spider 引擎数据更新缓慢-XX:PerMethodRecompilationCutoff=-1 
    11jvm:MaxDirectMemory在某些场景下会严重影响 FineBI 计算性能和系统稳定性2048m
    12host文件信息

    影响 FineBI 计算性能,更新速度


    执行
    vi /etc/hosts

    新增一行如下

    127.0.0.1   hostname

    保存退出

    linux:/cat/hosts

    windows不需要配置

    13打开文件数信息1、更新失败
    2、仪表板预览报错
    3、宕机风险
    65536参考:https://help.fanruan.com/finebi/doc-view-28.html

    linux: ulimit -a或cat /proc/PID/limits

    windows不需要配置

    BI上不建议配置的几个参数:


    参数项参数说明建议
    1jvm:disableExplicitGC
    建议删除该配置
    2jvm:useConcMarkSweepGC该收集器的 Full GC 是单线程的,可能会导致系统长时间无响应,如非必要,建议取消建议删除该配置
    3jvm:UseG1GC该收集器的 Full GC 是单线程的,可能会导致系统长时间无响应,如非必要,建议取消建议删除该配置

    3. 修改 Xmx 参数

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

    强烈建议手动配置 Xmx 参数,并且推荐内存修改在 8GB <= Xmx < 32 GB(一定要 < 32GB)或者40GB <= Xmx <= 64GB

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

    3.1 直接部署修改 Xmx 参数

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

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

    3.1.1 Windows 系统

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

    1596433146364755.png

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

    1599630236937480.png

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

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

    3)修改后,重启工程。

    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

    4)输入 ps -ef|grep tomcat 查看进程,检查参数是否配置成功,若如下所示进程信息中出现参数相关信息,则表示配置成功:

    image.png

    3.2 部署在 Tomcat 中修改参数

    3.2.1 方法一:修改 catalina 文件

    1)Windows 系统下修改%Tomcat%/bin目录下 catalina.bat 文件,增加如下命令

    set JAVA_OPTS=%JAVA_OPTS% -Xms4g -Xmx8g
    set  JAVA_OPTS=%JAVA_OPTS% -XX:PerBytecodeRecompilationCutoff=-1
    set  JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1

    注:%JAVA_OPTS% 表示使增加的每一条配置参数都生效,若不使用%JAVA_OPTS%直接增加多条参数,则会因为配置覆盖读取而无法生效。用户也可将所有配置增加在一条参数中,例如:

    set JAVA_OPTS=%JAVA_OPTS% -Xms4g -Xmx8g -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1

    修改完成后重启工程,在%Tomcat%/logs 下查看 catalina.log 日志,如下图所示:

    image.png

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

    JAVA_OPTS="$JAVA_OPTS -Xms4g -Xmx8g -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1"

    注:$JAVA_OPTS 表示使增加的每一条配置参数都生效,若不使用$JAVA_OPTS直接增加多条参数,则会因为配置覆盖读取而无法生效。

    3)重启工程。

    4)输入 ps -ef|grep tomcat 查看进程,检查参数是否配置成功,若如下所示进程信息中出现参数相关信息,则表示配置成功:

    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= -Xms4096m–Xmx8192m -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1

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

    MEM_ARGS=" -Xms4096m -Xmx8192m -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1"

    修改后重启工程,查看进程即可看到配置生效,如下所示:

    image.png

    3.3.2 方法二:修改 commEnv 文件

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

    3.4 部署在 Websphere 中修改参数

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

    1598431278784641.png

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

    1598431343423221.png

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

    1598431394256058.png

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

    1598431460399089.png

    在「通用 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 中修改参数

    1)配置方式:进入%Tomcat%/bin目录,找到并编辑配置文件 catalina,

    Windows 修改 catalina.bat 文件,增加配置:

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

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

    1601286643926842.png

    配置完成后重启工程,在%Tomcat%/logs 下查看 catalina.log 日志,说明配置生效,如下图所示:

    1601287849782346.png

    Linux/Unix 修改 catalina.sh 文件,增加配置:

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

    2)配置完成后重启工程。

    3)查看进程,检查参数是否配置成功,若如下所示进程信息中出现参数相关信息,则表示配置成功:

    image.png

    4.3 部署在 Weblogic 中修改参数

    修改 startWebLogic 文件

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

    4.3.1 Windows 系统

    在 3.3.1 节已有的配置参数(startWebLogic.bat 文件 )set MEM_ARGS= -Xms4096m–Xmx8192m -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1后在增加一条参数:

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

    配置完成后重启工程。

    4.3.2 Linux 系统

    在 3.3.1 节已有的配置参数(startWebLogic.sh 文件 )MEM_ARGS=" -Xms4096m -Xmx8192m -XX:PerBytecodeRecompilationCutoff=-1 -XX:PerMethodRecompilationCutoff=-1"的引号内增加一条参数:

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

    注:若已经配置过 Xmx 等参数,可直接在 3.3 节配置参数中增加-XX:MaxDirectMemorySize=2g即可。

    如下图所示:

    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 模式参数

    建议开启,该参数只需在使用 Linux 下环境修改。

    5.1.1 单机本地部署配置参数

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

    -Djava.awt.headless=true

    如下图所示:

    1590576346814487.png

    2)配置完成后重启工程。

    3)输入 ps -ef|grep tomcat 查看进程,检查参数是否配置成功,若如下所示进程信息中出现参数相关信息,则表示配置成功:

    image.png

    5.1.2 部署在 Tomcat 中配置参数

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

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

    如下图所示:

    1590576653894604.png

    2)配置完成后重启工程。

    3)输入 ps -ef|grep tomcat 查看进程,检查参数是否配置成功,若如下所示进程信息中出现参数相关信息,则表示配置成功:

    image.png

    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. Linux 系统中修改 vm.max_map_count 参数

    max_map_count 文件包含限制一个进程可以拥有的 VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。

    调优这个值将限制进程可拥有 VMA 的数量。限制一个进程拥有 VMA 的总数可能导致应用程序出错,因为当进程达到了 VMA 上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。

    建议调整 vm.max_map_count 参数的值为 262144 ,以免 VMA 数量到了默认的上限,导致 JVM 进程崩溃。

    6.1 查看当前值

    sysctl -a|grep vm.max_map_count

    3.png

    6.2 修改参数值

    6.2.1 临时修改

    sysctl -w vm.max_map_count=262144
    sysctl -a|grep vm.max_map_count

    6.png

    6.2.2 永久修改

    编辑 sysctl.conf 文件,添加 vm.max_map_count=262144 后保存,使用sysctl -p使参数生效。

    vim /etc/sysctl.conf  #编辑sysctl.conf文件
    vm.max_map_count=262144  #添加代码
    sysctl -p  #使参数生效

    8.png


    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    在线QQ(将在2023.01.03关停):800049425

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭