tencent cloud

文档反馈

资源规格选型及调优建议

最后更新时间:2024-08-02 12:44:32
    本文将为您介绍如何选择腾讯云数据仓库 TCHouse-D 的实例规格,并会给出资源不足时的调优建议。
    注意:
    多种不同类型的业务建议配置资源隔离策略或拆分集群,如:实时报表业务一个集群、实时风控业务一个集群。
    一个业务同时支持多个 ToB 租户时,建议视情况进行资源隔离或集群拆分,减轻互相影响,如:同时为200个租户提供 SaaS 服务,拆分成4个集群,每个集群支持50个租户。

    资源规格及适配场景

    购买 Doris 集群时,需要选择 FE 节点、BE 节点的计算资源规格和存储资源规格,并选择是否开启高可用。

    资源规格及建议场景

    机型类型
    计算节点规格
    建议存储类型
    建议场景
    标准型
    4核16G
    高性能云硬盘
    SSD 云硬盘
    增强型 SSD 云硬盘
    仅限于 POC 功能测试或个人学习使用,主要用于体验测试产品能力。
    8核32G
    高性能云硬盘
    SSD 云硬盘
    增强型 SSD 云硬盘
    推荐用于测试环境,可支持中等数据规模、较复杂的数据分析
    16核64G
    高性能云硬盘
    SSD云硬盘
    增强型 SSD 云硬盘
    推荐用于生产环境,可支持较大规模、较复杂场景的数据分析,及高并发场景
    32核及以上
    高性能云硬盘
    SSD 云硬盘
    增强型 SSD 云硬盘
    生产环境推荐配置,可支持大量高复杂度数据分析,高并发等场景

    高可用及节点数量建议

    场景
    高可用选择
    建议最小 FE 节点数
    建议最小 BE 节点数
    POC 功能测试
    非高可用
    1个
    3个
    生产场景(查询高可用)
    读高可用
    最少3个FE节点
    最少3个 BE 节点,按需扩缩容
    生产场景(查询/写入高可以用)
    读写高可用
    最少5个FE节点
    最少3个 BE 节点,按需扩缩容
    跨AZ高可用场景
    读写高可用+3AZ部署
    最少5个FE节点
    最少3个 BE 节点,以3为阶梯扩缩容

    资源规格选择举例

    注意:
    以下内容仅供参考,不同业务场景下性能可能会有较大的差异。
    1. 场景一:产品功能验证,进行简单数据分析
    FE:不开启高可用,单节点4核16G
    BE:3节点,每个节点4核16G
    2. 场景二:中小规模数据简单查询,如百GB数据量级,1000QPS以下
    FE:不开启高可用,单节点8核32G
    BE:3节点,每个节点8核32G
    3. 场景三:生产场景,TB级数据量,涉及多表关联、GROUP BY 等复杂查询
    FE:开启高可用,3节点,每个节点16核64G
    BE:3节点,每个节点16核64G
    4. 场景四:生产业务,TB级数据量,涉及复杂查询,涉及大量高并发点查
    FE:开启高可用,3节点,每个节点16核64G
    BE:6节点,每个节点16核64G

    资源监控及调优建议

    大批量数据导入、数据查询、并发查询、多表关联 join 等操作都会导致 CPU、内存的大量占用,若CPU/内存使用率持续超过85%会导致集群不稳定,建议优化业务或变配。

    资源使用监控

    可在集群管理 > 集群监控中查看 BE、FE 各节点的 CPU、内存使用情况,如下图所示。
    集群监控 > BE 指标
    
    
    
    集群监控 > FE 指标
    
    
    

    资源扩容建议

    FE 和 BE 的 CPU、内存使用率持续超过85%时,就需要考虑进行资源升配或扩容。
    说明:
    导致 FE 和 BE 的 CPU、内存大量占用的主要原因如下:
    FE CPU 大量占用:多并发查询、大量复杂查询。
    FE 内存大量占用:元数据过多(分区不合理等)、频繁进行表删除等。
    BE CPU 大量占用:大量数据导入、大量复杂查询(如聚合查询)等。
    BE 内存大量占用:大量数据导入、大量复杂查询(如聚合查询)等。
    常见场景
    资源耗用表现
    使用率持续超过85%时调优建议
    过多数据持续导入
    FE 和 BE 的 CPU、内存都会被大量占用
    如果是 FE 瓶颈:建议纵向升配
    如果是 BE 瓶颈:建议纵向升配
    点查较多/高并发
    FE 和 BE 的 CPU 都会被大量占用
    如果是 FE 瓶颈:建议纵向升配
    如果是 BE 瓶颈:建议纵向升配
    元数据频繁变更删除
    FE 内存大量占用
    建议 FE 纵向升配,增加内存
    多表关联/聚合查询较多
    BE 的 CPU、内存会大量占用
    优先建议 BE 横向扩容,也可纵向升配
    数据多并发度写入
    BE 的 CPU、内存会大量占用
    优先建议 BE 横向扩容,也可纵向升配

    集群扩缩容注意事项

    操作类型
    注意事项
    水平扩容
    水平扩容过程中,系统读写仍可进行,但是可能出现一些抖动,执行操作大约需要5 - 15分钟,请选择在非业务高峰期进行。
    在数据存储量及查询量均相对增长时,优先选择水平扩容。
    水平缩容
    只能每次选择一类节点进行缩容操作,如仅缩容 FE 或 仅缩容 BE。
    FE 缩容:可一次性缩容多个。
    BE 缩容:一次性缩容多个 BE 节点有可能导致数据丢失或时间过长,建议逐个缩容。
    缩容过程中,系统读写仍可进行,但是可能出现一些抖动。
    垂直升配/降配
    垂直变配系统不可读、不可写。
    计算规格支持升配、降配;存储规格仅支持升配。
    变配操作结果对集群所有节点均生效。

    业务调优建议

    调优类型
    调优说明
    使用建议
    如果经常对某列进行点查,且列的基数较高,建议在此列创建 bloom filter 索引。
    如果经常对某表进行模式固定的聚合查询,建议在此表创建物化视图。
    建议结合业务场景合理分区分桶,避免分区分桶过多占用FE内存。
    普通数据探查的 sql,如果不需要全部数据,建议加上limit返回条数限制,也可加速查询。
    导入数据建议用 CSV,避免 Json 数据格式。
    尽量避免
    避免 select * 查询;
    避免全局开profile(会带来较多资源开销,建议针对需要的 SQL 开 profile)
    建表时:避免开启 merge_on_write(此功能暂不成熟)
    建表时:避免开启 auto bucket(此功能暂不成熟)
    建表时:避免开启动态 Schema 表(此功能暂不成熟)
    避免多个大表 Join,涉及多个大表关联时:
    可转为大表两两 join,并使用 Colocation Join。
    或使用预聚合表、索引等进行查询加速。
    参数调优
    一条 SQL 涉多并发时,建议调大parallel_fragment_exec_instance_num参数,此参数默认值200,可按倍数调大(如400、800),建议控制在2000以内。
    建议控制 compaction 速度,若监控指标base_compaction_score超过200且持续上升的话(具体可在“集群监控-BE指标-BE”页查看),可以将 compaction_task_num_per_disk 参数配置调大(系统默认2,可调大至4或更多)。
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持