单节点部署smartbi各个组件,在使用过程中可能会出现zpu资源抢占的情况。比如MPP高并发,大数据量查询操作、多并发执行导出的场景,数据挖掘大数据量计算场景等,都可能导致服务器资源不足,从而出现访问smartbi慢,卡顿甚至报错等情况。
当前针对各个组件占用服务器CPU资源,没有好的限制方法,因此,我们建议可以根据实际使用场景,将占用CPU资源比较大的组件部署在不同的服务器中,通过服务器的隔离,实现cpu资源的隔离,达到避免出现cpu资源抢占,导致smartbi服务访问受影响的情况。
服务器CPU资源消耗较大的组件有以下:
高速缓存库、跨库联合查询、导出引擎、Spark、Python计算节点
可以根据不同的场景使用,将资源消耗较大的服务单独部署在一个服务器中。
多台服务器部署方案参考:
两台服务器部署:
场景1、普通部署
1、smartbi、知识库、导出引擎、跨库联合查询
2、数据挖掘、高速缓存库、Spark、Python
场景2、侧重MPP数据抽取,以及跨库查询
1、smartbi、知识库、数据挖掘引擎、导出引擎
2、高速缓存库、跨库联合查询
场景3、侧重数据挖掘计算
1、smartbi、知识库、导出引擎、高速缓存库、跨库联合查询
2、数据挖掘引擎、Spark、Python、
三台服务器部署:
场景1、普通部署
1、smartbi、知识库、导出引擎
2、跨库联合查询、高速缓存库
3、数据挖掘、spark、python
场景2、侧重MPP数据抽取,以及跨库查询
1、smartbi、知识库、数据挖掘引擎
2、高速缓存库、
3、跨库联合查询、导出引擎
场景3、侧重数据挖掘计算
1、smartbi、知识库、导出引擎、高速缓存库、跨库联合查询
2、数据挖掘引擎、Spark-master节点、Python
3、Spark-work节点
以上方案提供参考,可根据服务器数量以及侧重某个组件,将消耗CPU服务器资源的组件单独部署在一个服务器中。
CPU | 内存 | 硬盘 | 网络 |
---|---|---|---|
8核 | 32G | 部署目录200G | 千兆网卡 |
组件名称 | 内存 | 备注 |
---|---|---|
Smartbi | 4G | Tomcat的JVM内存最大值,4G内存主要适用于单用户demo功能演示,建议配置8G以上内存。 |
知识库 | 4G | Mysql可能会使用的内存 |
MPP | 10G | MPP的默认内存配置,可调整 |
UnionServer | 8G | 跨库的默认内存配置,可调整 |
导出引擎 | 4G | 导出引擎可能会使用的内存 |
数据挖掘-实验引擎 | 5G | 默认的JVM内存最大值,可调整 |
数据挖掘-服务引擎 | 3G | 默认的JVM内存最大值,可调整 |
Python执行节点 | 2G | 默认的JVM内存最大值,可调整 |
CPU | 内存 | 硬盘 | 网络 | 备注 |
---|---|---|---|---|
16核+ | 64G+ | 500G+ | 千兆网络+ | 推荐单盘符部署smartbi组件 |
组件名称 | 内存 | 备注 |
---|---|---|
Smartbi | 16G | Tomcat的JVM内存最大值,可根据并发量调整此参数 |
知识库 | 4G | Mysql可能会使用的内存 |
MPP | 10G | MPP的默认内存配置,可调整 |
UnionServer | 8G | 跨库的默认内存配置,可调整 |
导出引擎 | 4G | 导出引擎可能会使用的内存 |
数据挖掘-实验引擎 | 5G | 默认的JVM内存最大值,可调整 |
数据挖掘-服务引擎 | 3G | 默认的JVM内存最大值,可调整 |
Python执行节点 | 2G | 默认的JVM内存最大值,可调整 |
Spark | 8G | Spark使用内存,可调整 |
消耗服务器资源组件:
高速缓存库、跨库联合查询、导出引擎、Spark、Python计算节点
两台服务器部署方案参考:
服务器 | 部署组件 | 备注 |
---|---|---|
服务器1 | smartbi、知识库、导出引擎、数据挖掘实验引擎,数据挖掘服务引擎 | |
服务器2 | Spark、Python、高速缓存库、跨库联合查询 |
Smartbi及其组件可分为两大部分:
其中可以根据服务器资源消耗再细分成两部分:
①Smartbi、知识库、导出引擎、Redis
②高速缓存库、跨库联合查询
数据挖掘引擎可根据服务器资源消耗细分为两部分:
①实验引擎、服务引擎、Hadoop
②Spark、Python计算节点
部署方案并非一成不变,可以根据服务器数量和产品功能使用的侧重点来灵活的分配服务器资源。
以下几个部署方案可提供参考:
背景:两台服务器,部署除数据挖掘引擎外的所有Smartbi组件(不部署集群)。
部署规划:
服务器 | 部署组件 |
---|---|
服务器一 | Smartbi,知识库,导出引擎,Redis |
服务器二 | 高速缓存库,跨库联合查询 |
高速缓存库和跨库联合查询部署消耗资源较多,可以将两个服务部署在一台服务器中。 如果需要部署smartbi集群,服务器二再部署一个smartbi节点,并部署一个Proxy代理即可。 |
背景:两台服务器,部署所有的Smartbi组件,并且经常使用数据挖掘模块。
部署规划:
服务器 | 部署组件 |
---|---|
服务器一 | Smartbi,知识库,高速缓存库,跨库联合查询,导出引擎,Redis |
服务器二 | 数据挖掘模块 |
数据挖掘引擎在使用过程消耗资源较多,单独部署在一个服务器中。 如果需要部署smartbi集群,服务器二再部署一个smartbi节点,并部署一个Proxy代理即可。 |
背景:三台服务器,部署所有的Smartbi组件,并且客户习惯使用Python脚本执行数据挖掘任务。
部署规划:
服务器 | 部署组件 |
---|---|
服务器一 | Smartbi,知识库,高速缓存库,跨库联合查询,导出引擎,Redis |
服务器二 | 数据挖掘实验引擎,服务引擎,Hadoop,Spark |
服务器三 | Python计算节点 |
客户习惯使用Python脚本执行数据挖掘任务,则可以将Python计算节点单独部署在一台服务器中。 如果客户更习惯使用数据挖掘中自带的模块执行数据挖掘任务,则可以将Spark单独部署在一台服务器中。 如果需要部署smartbi集群,在其他服务器部署smartbi节点,并部署一个Proxy代理即可。 |
参考以上三个部署方案,再根据不同的需求和不同的服务器资源灵活的进行服务器的部署规划。