集群资源规划是企业或组织通过合理配置、动态管理计算、存储、网络等核心资源,实现系统可靠性、可用性与运行效率提升,最终精准匹配并支撑业务需求的管理过程。
说明
StarRocks 主要由两种类型的组件组成:FE 节点和 BE 节点。每个节点必须单独部署在物理机或虚拟机上。
对于存算分离的情况,会使用 CN 节点,替代 BE 节点,可参考存算分离最佳实践创建实例。存算分离架构如图所示。
在存算一体版本中,实例仅包含前端(FE)和后端(BE)节点。以下将分别对两者的规格提出建议。
注意
公式估算资源结果仅供参考,因各个业务 SQL 复杂度不同,所需资源会存在差异。实际生产环境还需要结合实际业务的压力测试结果,评估最终所需资源。
在存算一体版本中,BE 节点负责实际数据存储以及计算任务。
预估公式
CU总数 = 扫描数据总行数 / CPU处理能力 / 预期响应时间*QPS(每秒查询次数) 所需的总存储空间 = 原始数据大小 * 数据副本数/数据压缩算法压缩比
参数说明:
BE 节点参考资源配置:
扫描数据总行数 | SQL 复杂度 | 预估 CPU 处理能力(行/秒) | 预期响应时间(秒) | QPS(每秒查询次数) | 预估所需 CU 总数 | 预估 BE 规格 |
|---|---|---|---|---|---|---|
5000 万行 | 高 | 2000 万行 | 2 | 50 | 63 | 16CU*4 个 |
5000 万行 | 中 | 5000 万行 | 1.5 | 100 | 67 | 16CU*5 个 |
5000 万行 | 低 | 10000 万行 | 1 | 200 | 100 | 32CU*3 个 |
10 亿行 | 高 | 2000 万行 | 5 | 20 | 200 | 32CU*7 个 |
10 亿行 | 中 | 5000 万行 | 3 | 50 | 333 | 64CU*6 个 |
10 亿行 | 低 | 10000 万行 | 1 | 80 | 800 | 64CU*13 个 |
300 亿行 | 高 | 2000 万行 | 30 | 10 | 500 | 64CU*8 个 |
300 亿行 | 中 | 5000 万行 | 15 | 20 | 800 | 64CU*13 个 |
300 亿行 | 低 | 10000 万行 | 15 | 20 | 400 | 64CU*6 个 |
3000 亿行 | 高 | 2000 万行 | 60 | 5 | 1250 | 64CU*20 个 |
3000 亿行 | 中 | 5000 万行 | 45 | 10 | 1333 | 64CU*21 个 |
3000 亿行 | 低 | 10000 万行 | 45 | 10 | 667 | 64CU*11 个 |
FE 节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。
FE 规格可按照 BE 的 CU 数量进行粗略预估,具体建议如下表所示。FE 节点的数据盘通常只需 100 GB,如后续存储空间不足,可再进行单独扩容。
FE 节点参考资源配置:
BE 总 CU 数量 | 场景类型 | FE 建议规格 |
|---|---|---|
< 120CU | 普通场景 | 8CU * 3 |
120CU ~ 1000CU | 普通场景 | 16CU * 3 |
1000CU ~ 3000CU | 普通场景 | 32CU * 3 |
| 普通场景 | 64CU * 3 |
说明
在存算分离版本中,实例仅包含前端(FE)和后端(CN)节点。以下将分别对两者的规格提出建议。
在存算分离版本中,CN 节点负责实际数据的计算任务和远端数据的缓存。
可参考存算一体版本中的 BE 节点规格评估及 StarRocks存算分离集群配置建议,而 CN 节点的本地存储仅影响查询与写入时的缓存空间大小,因此建议根据查询的数据量来决定使用的存储大小,一般 16core 配置 256GB 存储空间。
可参考存算一体版本中的 FE 节点规格评估。
说明
本说明旨在让客户更好的评估当前集群的健康状况,避免因突发导入/大查询致使集群资源紧张而导致业务不可用。
资源类型 | 健康水位 | 相关性说明 |
|---|---|---|
CPU | 60% | 通常与集群 QPS/RPS 正相关 |
内存 | 80% | 通常与集群副本元数据、缓存正相关 |
磁盘容量 | 80% | 通常与元数据正相关 |
资源类型 | 健康水位 | 相关性说明 |
|---|---|---|
CPU | 60% | 通常与集群写入数据量、查询数据量、查询复杂度、QPS 正相关 |
内存 | 70% | 通常与集群写入数据量、缓存、查询复杂度、QPS 正相关 |
磁盘带宽 | 300MB/s | 通常与集群写入数据量、查询数据量、副本克隆正相关 |
磁盘容量 | 80% | 通常与集群数据量正相关 |
当 FE 存在 CPU/内存任一维度超过健康水位时,可考虑 FE 升配。
当 BE 存在 CPU/内存任一维度超过健康水位时,可考虑 BE 升配或横向扩容。
当 BE 存在磁盘带宽/容量任一维度超过健康水位时,可考虑磁盘升配或 BE 横向扩容。