历史版本12 :BI性能优化 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 为什么要进行性能优化编辑

在使用 FineBI 时,可能会出现以下情况影响使用。

  • 访问仪表板时加载时间很长

  • 频繁访问大数据量仪表板占用了过多的服务器内存而导致内存溢出

  • 过多的用户并发访问的时候服务器承受压力过大导致服务器崩溃

  • 频繁地出现请求超时

  • 更新时间长、更新报错、更新卡住

若出现以上现象,说明需要进行性能优化来提高 BI 的使用体验。

2. 影响性能的因素编辑

当系统出现性能问题时,首先应分析是什么原因导致缓慢再分析如何改进。

2.1 服务器性能

FineBI 作为纯 Java 软件,集成至服务器的 BI 会继承服务器的资源。服务器的虚拟内存、连接池的设置等等往往会导致很多性能问题。

2.2 数据准备

  • 在进行数据准备获取和处理数据时,可能在使用 左右合并 由于不合理的操作导致建立 N:N 关联,数据膨胀倍化,或者配置了不合理的 SQL 数据集导致取数预览缓慢,都会引起在更新时卡住或者更新缓慢等问题。

  • 实时数据展示速度主要依赖数据库性能,如果涉及到 内存化 会将原始表所有数据加载到内存进行计算,非常影响仪表板展示速度。并且若数据量大的表使用内存化可能会占用服务器过多内存导致服务器内存占满。

2.3 仪表板制作

在制作仪表板时,若制作的图表层级过多或者分组过多,或者单张仪表板制作组件数超过 30 个,就会引起仪表板展示速度缓慢。

3. 如何进行性能优化编辑

3.1 服务器性能优化

优化方法
文档
设置合理的服务器配置FineBI 服务器配置推荐
配置宕机风险参数FineBI 宕机风险参数说明
若已经出现问题,需检查问题原因并优化BI宕机问题排查步骤

3.2 数据准备优化

3.2.1 数据处理

  • 规范数据处理方式,避免产生大数据量 N:N 关联

3.2.2 数据更新

  • 避免出现大量的单表定时更新,并且更新时间比较分散,尽量使用 全局更新

  • 更新时将同一时间的任务合并,放在一起更新,减少自助数据集重复更新

  • 每次数据更新的时间间隔越远越好

3.2.3 数据使用

  • 实时数据需检查数据库性能,保证数据库取数速度

  • 谨慎使用内存化和实时数据:内存化实时数据

3.3 仪表板优化

详情见:仪表板展示速度慢排查步骤

  • 控制仪表板图表层级或者分组

  • 单张仪表板制作组件数不超过 30 个

  • 若对图表大数据分组有要求,可进行 图表大数据 GCC 升级

  • 对大数据实时数据集建议减少内存化操作或者切换为抽取数据

  • 实时数据的数据库执行速度慢,可优化 SQL 语句或者参考 实时数据中 SQL 参数使用 减少数据量

  • 使用自助数据集选字段以外的功能,建议减少实时数据使用场景