1. 序言
一张图,读懂BI系统结构
通过上图中,我们可清晰的了解到BI部署在中间件上,依托JDBC连接数据库,用户通过互联网访问平台资源,所以我们可以简单理解,可能会影响到BI服务器性能的因素有:
- 中间件
- 数据库
- 网络资源
他们分别对BI服务器有怎样的影响,应该如何设置,服务器性能会更优呢?我们一起来分解下。
2. 环境因数
2.1 中间件
中间件种类繁多,以TOMCAT为例。
TOMCAT默认内存最大内存为128M,在大用户量情况下容易出现内存不够的情况,所以需要进行调整。
修改内存大小一般在启动文件startup.bat或startup.sh中设置,设置例子如下:
Set JAVA_OPTS= -Xmx1024m -Xms256m -XX:MaxPermSize=256m(Windows)
JAVA_OPTS=-Xmx1024m -Xms256m -XX:MaxPermSize=256m(Linux)
内存调整需根据服务器内存大小、操作系统版本、WEB服务器版本、JDK版本和实际使用情况进行调整,一般建议在32bit环境下最大内存不要超过2G,在64bit环境下不要超过4G,且如果启动tomcat失败可以逐渐调下内存。
注意:某些JDK版本限制最大堆内存,不支持分配超过1.5G的内存,如果有充足的内存,可以多建立几个节点集群成员,逐一对每个成员做相应的修改。
2.2 数据库
BI分析表,会根据用户选择的计算条件转译成为SQL,并返回数据库中进行查询,最终将查询的结果重新构表,并返回到BI门户中。所以数据库的计算性能直接影响到查询的效率,再前端的感受,就是分析表计算时长。
影响的因素包括,但不限于:
- 内部参数;
- 最大连接数;
- 磁盘空间和转数;
- 表空间大小和使用情况;
因每个数据库参数设置各有不同,在此不一一列举具体配置方法。
2.3 网络
网络的影响分为内部和外部。
内部主要是,中间件和数据库服务器交互的速度。通俗的讲,BI部署在中间件中,依托网络连接数据库,进行数据交互,中间件服务与数据库服务器交互的速度也会影响到BI服务器访问的速度;
同理,用户通过客户端访问BI服务器,也是依托网络环境,网络速度低,会直接影响到服务器的访问效果。通常我们建议客户端的网络传输速度不低于100KB/s;
3. BI服务器配置建议
3.1 BI中数据库连接相关设置
(1) 线程数设置,当计算报表的时候提示正在计算,有多少用户在排队时
建议: CPU个数*4
(2) 数据库连接数,当数据库连接池已满或者连接超时
建议:修改JDBC中的maxactive值,设置为100
3.2 系统自检
BI自带系统诊断功能,当系统设置在超出预警,系统会予以警示。
诊断项 | 检测内容(中文) |
时区设置 | 必须是Asia/Shanghai,否则提示错误 |
file.encoding设置 | 必须是"UTF-8","UTF8","GB18030","GBK",否则提示错误 |
sun.jnu.encoding设置 | 同上 |
操作系统字符集 | 检查文件名或文件内容是否支持GBK编码,不支持提示错误 |
java.awt.headless设置 | windows不检查,linux检查或未设置提示错误 |
最大内存设置 | 32位要求大于1024M,64位要求大于2048M |
可用内存 | <%5 系统已几乎无可用内存 <30% 系统可用内存偏低 >=30% 通过 |
可用字体 | 必须有宋体字体,否则不能通过 |
连接池参数检查 | mysql连接池未找到characterEncoding,提示 sybase连接池未使用com.sybase.jdbc3.jdbc.SybDriver,提示 sybase未使用charset,提示 日志记录基本是debug,提示 |
连接池数据库驱动检查 | DB2驱动低于9.5,提示 Oracle驱动低于10.2,提示 |
检查超级管理员密码 | 通过注释不能和用户名相同,设置的"123456"等; |
日志检查 | 超过10w行提示 |
线程池状态 | 等待线程>30,提示 线程数<cpu核数,提示 线程数>cpu核数*20,提示 缓存大小>10w,提示 |
注册码检查 | >0 & <30,提示 线程池<10,提示 同时在线人数<50,提示 |
工作目录检查 | >2g,提示 |
默认备份计划任务 | 不存在,提示 |
请先登录