【已解决】doris 机器配置,单机磁盘容量、内存、CPU的配置关系以及内存超限后如何处理

Viewed 168

版本:doris 2.1.2

doris应该按照一个什么样的磁盘、内存、CPU的比例来配置一台机器?
例如我选择了 aws的 r6i.2xlarge 来作为be的服务器,开了10个BE,单机配置了4T的SSD来做存储。

集群是通过kafka的routine load方式进行导入,kafaka上的消息队列写入速度在 12w tps左右。

其中一个聚合表,单个分区有32个tablet,一个17个分区. 共有 60G的数据。在按照 某个字段进行 count(distinct column1) 进行 group by时。 内存超限。

ERROR 1105 (HY000): errCode = 2, detailMessage = (172.31.21.21)[CANCELLED]work load group memory exceeded limit, group id:1, name:normal, used:24.35 GB, limit:16.68 GB, backend:172.31.21.21. cancel top memory used tracker
  1. 我的机型配置、特别是内存和磁盘比例是否合适。场景:明细数据进行join对数据补全占比较多-基本小时级查询,一次查询几百万以及以上的数据,报表类型的group聚合一天查询几次。
  2. 有没有什么参数来控制查询和存储的一个比例,例如 hbase可以控制0.3的内存用于查询,0.5用于写入。
  3. 因为这个表是有3个副本,在遇到上述问题时,我有没有什么手段来让查下完成呢?

感谢!

1 Answers

可以按1C : 4G Mem,1C : 50G 数据的常规模式来算;硬盘建议最好是SSD的、be属于计算密集型的组件、iops要求较高;be这块没有单双限制,生产>=3、即至少3副本保证读写高可用;fe的话一般建议奇数个,尽量遵从多数选举原则。

  1. 出现内存超限时可以在mem较高时查看MemTracker,确认是哪些模块使用了较高内存(读/写/Compaction/Cache等)
  2. 可以结合 Workload Group 进行资源隔离配置
  3. 资源有限的情况下,尽可能大拆小计算,或者把对应的workload group队列资源调大些

为更具体地了解问题,可以➕我一下W:yz-jayhua