反馈已提交

网络繁忙

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

产品部署

  • 文档创建者:Roxy
  • 历史版本:7
  • 最近更新:Roxy 于 2022-08-09
  • 1. 概述

    在业务人员使用BI之前,企业的IT部门需要先完成 BI 产品部署阶段。

    本文将为你说明 BI 部署的方法以及之后需要完成的参数调优和环境运维工作。跟随这些步骤,你也能够科学地完成企业 BI 平台部署 并保障后续的稳定使用。

    2. 产品部署

    FineBI 是一个 Servlet 应用。

    Servlet 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以生成动态的 Web 页面。它担当客户请求( Web 浏览器或其他 HTTP 客户程序)与服务器响应( HTTP 服务器上的数据库或应用程序)的中间层。

    因此 FineBI 必须部署在 Web 应用服务器如 Tomcat、WebLogic、WebSphere 等下面,启动 Web 应用服务器时就会加载 FineBI 这个 Servlet ,从而交互式地浏览和修改数据,整个过程如下:

    FineBI 安装文件本质上就是一个 Tomcat ,若企业使用 FineBI ,推荐服务器部署,满足更稳定的运行效果。

    服务器部署将 FineBI 系统置于服务器上,通过 IP 地址访问同一个 BI 系统,从而实现系统平台的作用,达到企业整体工作的业务活动需求。

    2.1 环境配置

    详情参见: FineBI服务器配置推荐

    2.1.1 cpu

    cpu16核~32核,2.5GHz及以上

    BI数据更新和引擎计算,会对源数据进行加工处理,这个过程是需要使用cpu资源去完成的,如果单表数据量在1kw以上,推荐配置cpu16核~32核,2.5GHz及以上

    2.1.2 内存

    内存32G以上

    跟CPU使用场景差不多,BI在进行更新等操作是也是会申请内存来完成动作,这一部分主要就是堆内内存的使用,是通过xmx控制上限,

    其中BI的xmx最大可分配64G,超过64g对于BI的性能提升空间就不大了。可以预估下后续使用的BI量来选择服务器的总内存。

    2.1.3 磁盘

    ①磁盘空间:

    BI在运行过程中,会生成大量的文件,比如从数据库抽取存储到BI服务器上的数据文件,比如日常日志文件、比如用户模板文件等。如果后续长期会使用抽取模式的数据,那对于磁盘空间要求是比较高的,推荐磁盘空间600G-1T 

    ②磁盘读写:

    FineBI 是 IO 密集型应用,对磁盘 IO 依赖较大,因此推荐使用本地磁盘或固态硬盘,固态硬盘性能会更佳。推荐大于500 MB/s的顺序读写速度,大于50 MB/s的4k随机读写速度。

    2.2 容器选择及部署

    2.2.1 容器选择

    BI支持各种不同容器的部署,其中最常见最流行的是tomcat容器部署,下文都将以tomcat为例讲解如何部署BI工程。(其他容器的部署可参考文档:WebLogic 服务器部署Wildfly(JBoss)9~18 服务器部署WebSphere 服务器部署 等)

    2.2.2 tomcat部署

    1)环境准备

    tomcat部署BI需要提前准备 tomcat容器、JDK环境以及BI的工程包。

    其中 Tomcat 服务器版本和 JDK 版本如下,版本不对应会导致服务器部署失败。

    注:安装的 JDK 版本一定要与操作系统匹配,64 位操作系统可以安装 32 位的 JDK ,但是 FineBI 不支持这样的操作,必须保持统一。

    系统Tomcat 版本JDK 版本

    linux 64位

    windows 64位

    8.0 (不支持 Tomcat 8.0.32 版本)JDK 1.8 且小版本需在 JDK8u102 以上

    9.0

    注:不支持 Tomcat 10.0 版本

    BI工程包(webroot)可以通过帆软提供的安装包安装后从 FineBI/webapps/webroot 目录下,提取这个 工程包(webroot)

    安装包部署可参考:FineBI安装与启动

    2)部署步骤

    上传 webroot 文件至 Tomcat 环境中

    将本地 FineBI 工程的 webroot 文件夹压缩,将压缩包上传至%TOMCAT_HOME%\webapps

    注:不推荐直接上传文件夹,防止文件出现问题。

    上传完成后,解压压缩包,代码如下所示:

    cd /opt/apache-tomcat-8.5.60/webapps
    unzip webroot.zip

    引入 JDK 中的 tools.jar 文件

    %JAVA_HOME%\jdk\lib下的 tools.jar 拷贝到部署的服务器中,拷贝到%TOMCAT_HOME%\lib下或者%TOMCAT_HOME%\webapps\工程名\WEB_INF\lib下,代码如下所示:

    cp  -R /usr/local/java/jdk1.8.0_161/lib/tools.jar /opt/apache-tomcat-8.5.60/lib

    确认是否修改端口号

    若 Linux 系统中有多个 Tomcat 同时运行,需要确认默认的 8080 端口号是否被占用;若 Linux 系统之前没有部署过工程,可忽略该节内容。

    查看默认的 8080 端口号是否被占用,下图为被占用情况。

    netstat  -anp  |grep 8080

    若被占用,需要修改 Tomcat 端口号。具体方法请参见 Tomcat 端口配置 

    启动BI工程

    进入到 %Tomcat%/bin 目录下执行 启动命令,代码如下所示:

    cd /opt/apache-tomcat-8.5.60/bin    # 进入bin目录
    nohup ./startup.sh &                         # 启动 Tomcat

    浏览器访问BI

    启动浏览器,在地址栏输入:http://ip:服务器端口号/工程名/decision,如下图所示:

    2.3 集群部署(非必须)

    FineBI 集群目前有 3 种方案,分别为 热备Web集群&BI的Spider引擎单节点部署方案Web 集群 。

    集群方案选择可根据实际情况参考集群方案推荐

    3. 参数调优

    FineBI 在部署后需要修改使用内存和其他参数,确保服务器稳定运行,其中最重要的就是内存参数,跟系统流畅度是直接挂钩的。

    接下来主要讲解tomcat修改参数的方式,其它容器修改方式可参考:修改FineBI配置参数

    3.1 BI内存使用说明

    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 性能差

    Xms

    默认值为物理内存的 1/64,不要配置的太小,避免反复申请内存扩展堆空间大小,造成性能损耗。

    在客户内存分配合理的情况下,即-Xmx值没有过大的剩余浪费的情况的话,-Xms 与-Xmx 建议设成一样的值,避免 JVM 反复重新申请内存,但同时不建议太大,建议32G以下。

    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)

    3.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 是单线程的,可能会导致系统长时间无响应,如非必要,建议取消建议删除该配置

    4. 环境运维

    4.1 工程目录维护

    下文将讲解 Tomcat 部署下的工程目录结构,安装包部署下的目录结构可参考:FineBI安装目录结构

    4.1.1 Tomcat部署目录

    一级目录二级目录&文件含义

    bin

    启动程序目录


    startup.sh/bat

    • tomcat启动脚本,通过命令执行脚本,达到启动tomcat的作用

    • 其中如果是windows环境,双击bat文件启动,要求环境变量中配置JAVA_HOME

    • 用户可在此文件中配置JVM参数等配置信息

    shutdown.sh/bat

    • tomcat关闭脚本,通过命令执行脚本,达到关闭tomcat的作用。但是不推荐使用,在部署BI的情况下,可能进程无法关闭

    catalina.sh/bat
    • 用户可在此文件中配置JVM参数等配置信息

    setclasspath.sh/bat
    • 用户可在此文件中配置JVM参数等配置信息,一般都配置JAVA_HOME

    • 如果部署的时候,jdk路径有问题,需要顺便检查一下该文件

    daemon.sh/bat
    • 以服务方式启动tomcat

    注:该方式启动默认启动路径为根目录,可能影响fanruan.log文件生成

    conf

    tomcat的配置文件目录

    server.xml

    常见的端口,工程等等配置

    web.xml容器的一些属性配置

    logs

    日志存放目录

    catalina.out

    容器所有的日志都会输出到这里,linux环境才会有的。而且不会分割,长期运行的话,会变得比较大

    catalina.xxxx-xx-xx.log

    一般都是容器启动的日志会输出到这里,按日期分割。有时候需要确认客户启动的时间点 或者参数之类的可以看一下

    host-mannager.xxxx-xx-xx.log

    估计是tomcat的manager项目的相关日志,可以不关注

    localhost_access_logxxxx-xx-xx.txt

    记录了http请求的信息。在处理问题的时候需要确认请求url是否到达tomcat的时候,可以看一下这里的日志

    fanruan.log

    BI日志,需要注意的是,这里只记录了FineLoggerFactory.getLogger()接口打印的日志。

    就是说是BI代码里用BI的日志接口输出的日志才会输出到这里。

    BI里面有一些第三方的代码,用的是log4j之类的日志输出,就不会打印到这里,比如spark的日志。

    注:

    FineLoggerFactory.getLogger()接口是BI自己的输出日志的接口,一般情况下,BI自己的代码按照规范输出日志必须使用该接口。

    gclogs/

    GC日志存储目录,记录内存GC的相关信息。
    temp
    容器的默认缓存目录。可以显式配置-Djava.io.tmpdir参数来自定义路径
    webapps
    存放应用程序,当服务启动时会去加载 webapps 目录下的应用程序

    4.1.2 webroot目录

    一级目录

    二级目录

    含义

    WEB-INF

    assests

    资源文件夹,存放工程用到的资源文件等,其中 temp_attach 中存放着上传的图片和 Excel 数据

    assist

    辅助文件夹,存放一些辅助文件

    classes

    编译后的代码文件存放目录,class文件,一般都是放一些二次开发的代码文件

    config

    存储一些关键的配置信息

    db.properties:外置数据库信息配置文件。

    dashboards

    BI 模板保存文件夹

    demo

    BI或者FR工程中携带的demo数据库

    embed

    内置数据库配置目录

    lib

    存放BI运行依赖的jar包文件,包括第三方的jar包

    plugins

    插件安装目录

    reportlets

    存放 FineReport 报表 cpt 、frm文件

    resources

    存放工程相关的资源配置文件,最常见的即授权文件存在在该目录

    schedule

    定时调度任务的结果文件

    treasures

    包含报表的功能点及 BI 的埋点信息,正常情况下一个月会自动生成一次

    scripts


    插件管理页面的资源文件,一般插件管理页面加载异常的话都是这里的文件出问题了

    (注意:BI5119(FR11)版本开始,scripts文件夹存于webroot\WEB-INF\assets,原webroot下的无效了)

    logs


    swfit日志库的文件存储目录 平台日志 LogDB 数据库-https://help.fanruan.com/finebi/doc-view-706.html

    spider


    5.1.12版本及之后,BI默认的数据存储路

    directcache


    实时数据的数据预览的缓存目录

    backup


    存放平台备份文件,该路径可在平台上自定义配置。

    4.1.3 工程文件清理&优化

    1)可清理的三类文件

    • Temp目录下文件

    • ROOT/db目录下的dummy文件

    • Logs目录下的历史日志文件

    Temp 文件:为 spark 计算生成的临时文件,是默认自动清理七天内的文件的

    路径:①如果是tomcat部署,就在tomcat/temp下

              ②如果是安装包安装,在 BI安装目录/temp 下

    会有上图中 blockmgr 或者 spark开头的文件

    清理方法:bi服务器关闭时,直接删除里面的文件;

                     可以设置清理间隔时间;

    dummy 文件:数据集更新时生成的临时数据文件,数据更新失败后会有该类型文件,更新成功是没有的

     

    路径:tomcat部署时,默认路径是  \apache-tomcat8\bin\ROOT\db

               安装包部署时,默认路径: FineBI\bin\ROOT\db

    清理方法:其中dummy开头的文件都可清理(在BI平台没有任何更新任务的情况下)

    日志文件:主要是BI运行过程中输出的操作日志等信息

    路径:① bin目录下的 error.log文件 和 output.log

              ② logs目录下的相关文件,Catalina.out ,fanruan.log日志等

    清理方式:

    BI服务关闭的时候,删除占用空间大的文件(log、output.log等),重启即可

    不需要关闭服务,可执行 echo "'" > filename 命令,也能清空当前日志文件。

    2)日志输出调优

    windows下tomcat窗口输出日志引起的性能问题

    原因:tomcat窗口图形化日志输出过多会影响仪表板等功能的数据加载预览

    方案:tomcat调整成后台运行,隐藏窗口

    编辑TOMCAT_HOME\bin\setclasspath.bat,在文件底部找到 set _RUNJAVA="%JRE_HOME%\bin\java"  修改为:set _RUNJAVA="%JRE_HOME%\bin\javaw"

    然后重启BI

    安装包部署下减少 output.log和 error.log的输出信息

    方案:BI5.1.18 版本以后, 在 fiendb表fine_conf_entity 表中添加参数 Log4jConfig.consoleLog 可以减少该日志的输出,加参数后需要重启BI
    比如 insert into fine_conf_entity value('Log4jConfig.consoleLog', 'false')

    注:要调整参数的前提建议是已经将内置库finedb外迁到外置数据库后,可以从外置库中调整参数配置 MySQL5外接数据库 ,具体参数修改步骤请联系技术支持提供方案。

    4.2 端口检查

    帆软应用正常使用过程中,需要服务器开放一些端口,因此需要对这些端口进行检查是否开放,避免出现系统功能异常。详情参见 运维监控指导手册 3.1 节

    4.3 异常情况处理

    在使用BI进行业务分析的过程中,因为不可控因素会出现一些异常现象,比如更新突然变得卡慢、数据一直在加载中、cpu&内存占用高等情况。

    在遇到这些异常情况时,除了常规的日志分析来定位原因外,往往需要堆栈等特殊日志辅助定位。

    详情参见:BI宕机问题排查步骤

    附件列表


    主题: 管理员指南
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

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

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

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

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭