傻宝贝贝 2017-07-25
1. BI描述
FineBI是一款纯B/S端的商业智能分析服务平台;支持通过web应用服务器将其部署在服务器上,提供企业云服务器。用户端只需要使用一个浏览器即可进行服务平台的访问和使用。因此在配置使用上可分为:服务器硬件配置、web服务器配置、客户端浏览器配置这三项内容。其中服务器硬件配置与web服务器配置是相辅相成的。
注:BI是web应用工程,是在web服务器上执行的。因此BI使用内存实际上是web服务器对应的JVM的内存。因此下文会分别说明硬件内存和BI分配的内存来区分二者。
2. 性能说明与服务器硬件
FineBI的性能主要分为FineIndex性能和数据分析的性能
2.1FineIndex性能
FineIndex本身作为数据仓库到自定义分析的中间层,它是将数据仓库中抽取的数据作为缓存数据生成文件放置到硬盘上的,它本身构建的是数据立方体,需要切片、分组索引。因此其性能参数主要在于如下:
(1) 内存
FineIndex在抽取数据、分组写入索引、写入关联生成缓存数据的过程中,均会将数据在内存中去操作。内存越大其速度越快。
FineIndex在数据计算的过程,采用的是Java计算(一般优于sql计算),也是消耗内存的资源,因此内存越大其运算的速度越快。
(2)硬盘
在FineIndex的使用过程中,FineIndex的生成是写入硬盘的文件。因此写入速度越快,则性能越高。
在FineIndex被读取数据时,系统执行的是文件级读取(性能上优于数据库读取),读取文件的速度越快,则性能越优。
2.2数据分析性能
数据分析是前端新建仪表板模块加载FineIndex的数据进入内存中进行计算。因此仍然是FineIndex的数据读取进行加载,然后在内存中运算。涉及的指标仍然是内存大小与硬盘读写速度。
2.3FineIndex大小预估
FineIndex体量大小通常会影响到硬盘容量的选择;FineIndex是将数据仓库中抽取的数据作为缓存数据生成文件放置到硬盘上的,它本身构建的是数据立方体,因此会在原有的数据容量基础上再次扩大。一般情况会是原数据的2~3倍。即当原数据容量是1G,则生成FineIndex是2~3G;而由于FineIndex更新是在不改原有的FineIndex文件,重新生成一份新的FineIndex文件,新的FineIndex文件生成后与旧的FineIndex文件进行替换,替换的时候硬盘空间占用了两倍的FineIndex大小,因此硬盘容量应该在该基础上再乘以2。即硬盘容量大小需求至少是原数据体量的4~6倍。
下文详细说明不同场景下的性能参数的配置。
3. BI服务器配置
3.1按最大单表数据量来判定
FineBI采用列式存储的FineIndex形式来处理数据,单表数据量(数据行数)是很重要的性能评测的参数。它即影响到FineIndex的更新速度又影响前端的计算速度;当然该单表数据还与表的分组有关。当前在预估服务器配置上,从最大单表的数据量即能很好的判断出数据。因此可以按单表数据量来判断BI服务器的配置。
注:其中硬盘大小一般为预估,当然用户应按数据库中的实际数据量的大小来预估,选择一款硬盘即可。硬盘推荐使用固态硬盘,但不强求固态硬盘。
按:性能情况为FineIndex按1000W数据10分钟内跑完,前端计算单表秒级展示。
序号 | 数据量 | 推荐CPU | 推荐内存 | 推荐硬盘空间 |
1 | <1000W | intelE3-1231v3 | 8G DDR4 2133MHz | intel750 SSD 500G |
2 | 1000W-3000W | intelE5-2609v3 | 2*8G DDR4 2133MHz | intel750 SSD 500G-800G |
3 | 3000W-5000W | intelE5-2609v3 | 2*16G DDR4 2133MHz | intel750 SSD 800G/1.2T /企业级 1T SAS 10000RPM |
4 | 5000W-1亿 | 2*intelE5-2609v3 | 2*16G DDR4 2133MHz /4*16G DDR4 2133MHz | intel750 SSD 1.2T /企业级 2T SAS 10000RPM |
5 | >1亿 | 4*intelE5-2609v3以上 | 4*16G DDR4 2400MHz | 企业级 2T SAS 10000RPM |
注:其中内存大小为预估,实际需根据业务场景模版数量以及ETL计算复杂程度来估算。
(1)1000万条数据及其以下
1000W的数据通常是小数据量,该数据量情况下BI通常需要的内存在4~6G左右;因此服务器的硬件内存通常需要8G即可。由于数据量比较小,因此硬盘空间并不需要过大,因此正常500G的硬盘基本够用。可以采用500G的固态硬盘。
推荐配置:CPU--intelE3-1231v3以上;内存---8G DDR3 1600MHz 硬盘--intel750 SSD 500G
(2)1000万~3000万条数据
1000W至3000万的数据通常也是较小的数据量,该数据量情况下BI通常需要的内存在8G~12G左右;因此服务器的硬件内存通常需要16G即可。由于数据量比较小,因此硬盘空间并不需要过大,因此正常500~800G的硬盘基本够用。可以采用500G/800G的固态硬盘。
推荐配置:CPU--intelE5-2609v3;内存---2*8G DDR4 2133MHz 硬盘--intel750 SSD 500G/intel 750 SSD 800G
(3)3000万~5000万条数据
3000W至5000万的数据是常见的数据量,该数据量情况下BI通常需要的内存在16G~24左右;因此服务器的硬件内存通常需要32G即可。硬盘空间大小一般需求在800G~1T左右。可以采用800G/1T的固态硬盘或采用企业级硬盘1T。
推荐配置:CPU--intelE5-2609v3;内存---2*8G DDR4 2133MHz 硬盘--intel750 SSD 800G/1.2T/企业级 1T SAS 10000RPM
(4)5000万~1亿条数据
5000W至1亿的数据量是较大的数据量,该数据量情况下BI通常需要的内存在24G~32G左右;因此服务器的硬件内存通常需要32G~64G即可。硬盘空间大小一般需求在1T以上。可以采用1.2T的固态硬盘或采用企业级硬盘2T。
推荐配置:CPU--2*intelE5-2609v3;内存---2*16G DDR4 2133MHz/4*16G DDR4 2133MHz 硬盘--intel750 SSD 1.2T/企业级 2T SAS 10000RPM
(5)1亿数据以上
1亿数据量以上是较大的数据量,该数据量情况下BI通常需要的内存在32G以上;因此服务器的硬件内存通常需要64G以上。硬盘空间大小一般需求在2T以上。可以采用企业级硬盘2T。
推荐配置:CPU--4*intelE5-2609v3以上;内存---4*16G DDR4 2400MHz 硬盘--企业级 2T SAS 10000RPM
3.2并发数因素的影响
按并发数来判定,通常是在数据分析端尤其是查看状态下,如果多人同时在线查看分析,则会有较大的并发影响。上述“单表数据量”通常是在忽略并发数的情况下来讨论的,那么当我们加入并发数这个因素后。我们会有两种处理方式:
一种方式,是通过集群的方式,多机集群来解决当前的数据。另一种方式当然是升级服务器配置到下一个档次。
那么正常FineBI在服务器上,按上述的配置单机的并发性能通常是20~25个左右。当超过这并发数时,可以将配置升级下一个档次。通常如果使用的是SSD固态硬盘,则不需要升级硬盘。
3.3服务器案例
(1)某医药集团:最大单表1000万行,并发数80个
CPU---inteli7-4790以上或intelE3-1231v3以上 内存---32G DDR3 1600MHz 硬盘---intel750 SSD 500G
(2)某国税:最大单表2亿行,并发数65个
CPU---4 X Intel i7-4830 v2 10C/20T 2.2GHz 20MB 内存---8 X 16GB DDR3 1600MHz 硬盘---企业级 2T SAS 10000RPM/企业级 512G固态硬盘
4. 服务器系统
FineBI支持windows、Linux、unix、Solaris 、Aix、IRIX等绝大多数的服务器系统。
从这些系统本身来看,服务器系统抛去用户常用的使用习惯之外,我们常推荐用户使用linux服务器。Linux系统作为企业级服务器的系统相比windows的优势众所周知,就不赘述了。
注:此处推荐只是说明linux的系统本身的优越性,与FineBI并无关系。FineBI在任意服务器系统的运行表现均良好,从FineBI本身来看,性能几乎一致。
5. web服务器
FineBI作为web应用,可以适配几乎所有的web服务器。我们推荐:tomcat、weblogic、websphere等常用服务器。
6. 客户端
BI是B/S框架的web应用服务,因此在客户端层面只需要一个浏览器即可。当前BI支持业内大多数的浏览器。
按浏览器引擎可分:
单核心:谷歌、火狐、IE8及其以上(包括Edge)、Safari、opera
双核心:360浏览器、搜狗浏览器、QQ浏览器、UC浏览器、猎豹浏览器、百度浏览器
注:其中双核心的浏览器只支持其极速模式,不支持兼容模式。
从渲染引擎的匹配度上,我们建议使用浏览器:谷歌、火狐。
7. 网速
在企业级应用中,BI作为企业云服务置于服务器上。BI连接的数据库也可能置于其他的服务器上,BI本身可能存在多服务器集群的情况,用户均使用浏览器访问云服务。数据的传递和展示均通过因特网传输,因此网速也是影响数据展示的性能之一。
服务器与服务器间:BI置于服务器上与其他服务器上的数据库连接、与自身集群的连接,往往都是极大量的数据来回传输,如更新FineIndex,FineIndex从数据库中读取千万级甚至亿级的数据,此时往往需要的网速达到千兆。即服务器与服务器间网速通常推荐达到千兆级。
客户端访问:客户端访问往往是网页上的信息传递。该网速要求比较低,10兆、百兆均可。
本文首发CSDN:http://blog.csdn.net/best_report/article/details/76084616