1. 概述
1.1 用户痛点
用户场景:
公司中有多个部门,可能存在高并发访问,需要优先确保一些重要业务/用户优先使用资源(例如领导使用,对外大屏,会议使用等)。
系统中存在几张模板性能不好(大数据量导出/填报/预览),业务部门不希望对模板进行限制,但又不想影响到其他业务。
系统原本的模板正常运行,新增了一些功能业务后,希望先在单独环境中使用一段时间,不要影响到原有业务。
公司没有测试系统,测试和生产环境在同一个应用中,需要将他们隔离到不同节点,不互相影响。
需求梳理:
保障核心业务性能和稳定性、保障核心用户/模板性能稳定性
按照部门设置业务组,业务级别故障隔离,避免不同部门业务相互影响
开发发布环境统一,用户权限一致需求,避免测试/新发布模板影响业务运行
1.2 功能简介
功能说明:
资源优先级管理:管理员可对系统业务(目录、模板、仪表板、公共链接)和用户(支持按照部门、角色、用户筛选)进行优先级排序,确保高优先级业务优先调用系统资源
资源隔离:集群多节点应用,可以根据节点拆分为多个业务组,将不同类型的业务(按照测试/生产、原有/新增、预览/填报)放置到不同业务组中,确保互相不影响。
调度管理:使用调度管理功能,可检查系统中不同时段的调度压力,合理设置业务定时任务的触发时间。
组件管理:一个FR/BI应用中,有很多组件,运维平台可以限制每个组件对系统CPU和内存的占用,防止某个组件大量占用服务器资源,导致其他组件性能差
使用前提:
集群节点数不得小于3个。其中有1个节点需要作为共享节点,不被任何业务组独占;其余至少2个节点用于业务划分 。
FineReport11.0、FineBI5.1.22以上
2. 按业务重要程度划分资源
应用场景
FineReport/FineBI系统中,有明确的核心业务资源,要求最大程度保证这部分资源的稳定使用。例如:
分类 | 建议 |
---|---|
项目 | 对外:公司对外展示的大屏模板 对上层:领导层每日查看的目标看板 对会议:每周/每月定期会议需要查看的看板 定期:上班签到、下班打卡、月度工资单、季度绩效单相关模板 |
用户 | 部门:对外接触客户的部门 角色:领导层、股东 用户:模板制作用户 |
解决方案
1)设置资源隔离
将核心的模板/用户设置到一个业务组中,业务组分配2个或以上的独占节点,业务组配置为:
节点资源:业务组独占
异常策略:转入共享节点
不重要的业务可以整合起来到一个业务组中,或者不分配业务组使用共享节点资源。
2)设置资源优先级
为核心的模板/用户设置高优先级。
使用效果
优点 | 说明 |
---|---|
资源优先 | 核心业务组中的模板/用户的请求会被固定转发到指定的几个节点上 其他未配置的资源请求转发到其他节点上 请求级别隔离核心业务和其他业务,避免资源影响 |
异常处理 | 核心业务组中的节点全部异常后,模板/用户会转发到其他节点进行访问,支持高可用 在其他节点,核心模板和用户仍然优先占用资源 |
资源均衡 | 核心业务组的节点间负载均衡 |
3. 按业务相关性划分资源
应用场景
FineReport/FineBI系统中的资源本身就是由多个业务部门使用,每一个业务部门使用的资源互不相关,不希望相互受到影响。
同时使用查询和填报,集中填报阶段对于查询会产生资源影响,影响查询性能和稳定性。
A和B两个部门完全不相关,各自硬件资源角度做资源分割,互不影响。
在原有的业务基础上,新增其他的业务,同时不希望影响到原有的业务使用。
解决方案
1)将业务和业务相关用户匹配,同一组业务和用户,隔离到同一个业务组中。
2)这些业务组的配置为:
节点资源:业务组独占
异常策略:阻止访问
使用效果
1)不同的业务组汇总的模板/用户请求,会固定转发到指定的节点上。
2)请求级别隔离不同业务,避免资源影响
3)不同业务组硬件级别的故障隔离,影响范围只在自己的业务组内
4)新增业务的情况下,老业务的请求资源完全不受影响,安全稳定的横向扩展。
4. 按使用程度划分资源
应用场景
当无法根据上述三点划分出具体的隔离模板时,
1)可根据数据决策系统「管理系统>智能运维>平台日志>模板热度」中,被操作总次数最多的模板来判断优先级
2)可根据数据决策系统「管理系统>智能运维>平台日志>用户行为」中,总操作次数最多的用户来判断优先级
解决方案
1)将模板热度中识别出来的高频使用模板设置到一个业务组当中
2)该业务组的配置为:
节点资源:业务组独占
异常策略:转入共享节点
使用效果
优点 | 说明 |
---|---|
资源优先 | 高频使用的模板请求会被固定转发到指定的几个节点上 其他未配置的资源请求转发到其他节点上 请求级别隔离核心业务和其他业务,避免资源影响 |
异常处理 | 核心业务组中的节点全部异常后依旧会有其他节点进行转发,支持高可用 核心业务组的节点间负载均衡 |
5. 其他功能
调度管理
在新增业务调度任务之前,先查看下系统自带的内置调度任务压力(这些任务包括定期清理日志,定期检测系统情况等)
从调度压力图可以看出来,下午4点到凌晨4点,系统的调度压力比较低。
管理员设置BI更新任务、定时调度任务、抽数缓存任务时,应当尽量安排在此时间段。
组件管理
小明在服务器上部署了一个容器化项目,但是他发现elasticsearch组件运行性能较差。
经过检查,发现是redis组件占据了全部CPU,导致服务器无法给elasticsearch组件提供富裕内存。
管理员登录运维平台,点击「运维管理>项目管理>组件管理」,点击redis组件对应的「更改配置>通用配置」,限制CPU和内存。
限制生效后,内存达到上限时会自动重启组件。