StarRocks资源评估

为了实现集群高可用,建议集群最低3个节点,FE和BE分开部署也可以混合部署。

单节点配置要求:

  • BE推荐16核64GB内存以上,FE推荐8核16GB内存以上。
  • 磁盘可以使用HDD或者SSD。
  • CPU必须支持AVX2指令集, cat /proc/cpuinfo |grep avx2 确认有输出即可,如果没有支持,建议更换机器,StarRocks的向量化技术需要CPU指令集支持才能发挥更好的效果。
  • 网络需要万兆网卡和万兆交换机。

环境支持要求:

  • Linux (Centos 7+)

  • Java 1.8+

假定内存、磁盘都不会拖后腿的情况下,分析/查询的性能瓶颈在 CPU 的处理能力。所以通过对 CPU 的算力要求,来预估集群的数量。

集群需要的总 CPU 资源:e_core = scan_rows / cal_rows / e_rt * e_qps

变量名变量含义样例
e_core预计要使用的CPU核数(vCPU)
vCPU总数(逻辑处理器) = Socket数(CPU个数)x Core数(内核)x Thread数(超线程)540c
scan_rows线上典型场景中的数据扫描量3000万/s
e_qps预期线上QPS180qps
e_rt预期线上响应时间300ms
cal_rowsStarRocks针对SQL场景的计算能力3000万/s

场景样例:

  1. 数据量:事实表一年 3.6亿行数据,大约 100万行/天;
  2. 典型查询场景:一个月的事实表数据( 3000万 )和比较小的的维度表(万级别)做关联,再进行 group by、sum 等聚合计算;
  3. 期望:响应时间在 300ms 以内,业务的峰值 QPS 达 180 左右。

估算解释:

  1. StarRocks 的处理能力在“单核 1000万~1亿/秒”,此场景有「多表 join」和「group by」以及一些表达式函数,相对复杂,所以按照「 3000万/s 的计算能力」估算,需要 3 个 vCPU:3000万 / 3000万/s / 300ms = 3c。
  2. 并发峰值为180qps,因此需要 3 * 180 = 540c,即总共需要 540 个 vCPU。按单台物理机48虚拟核(vCPU)算,理论计算大约需要12台物理机。
  3. 实际 POC 过程中,用3台物理机16虚拟核进行压力测试,能够在40qps下满足300-500ms的响应时间。最终,线上确定用7台48虚拟核的物理机。 所以,还是建议用户要根据实际的业务场景做一下POC测试。

综上:根据POC的测试结果,建议用户搭建3个FE节点每个节点16核64GB内存、7个BE节点每个节点48核152GB内存。

其他说明:

  1. 计算业务越复杂、处理中的一行的列数量越多越复杂,每秒能处理的行数就会越少;
  2. 计算中「条件过滤」的效果越好(能过滤掉很多数据),则能处理的行数就会越多(因为内部有一些索引结构,能更快地帮助处理数据);
  3. 不同「表模型」会对处理能力有很大影响,上面是按照「明细模型」估算。其他模型,内部会有一些特殊处理,真实的数据量行数会和用户理解的数据量行数有一些差异;同时,分区/分桶,也会对查询性能有很大影响;(我们有其他相关文档来指导用户如何使用以达到最佳性能)
  4. 对于一些需要扫描大量数据的场景,磁盘的性能也会影响处理能力。需要时,可以使用SSD来加速。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值