混合部署拓扑

    本文介绍 TiDB 集群的 TiKV 和 TiDB 混合部署拓扑以及主要参数。常见的场景为,部署机为多路 CPU 处理器,内存也充足,为提高物理机资源利用率,可单机多实例部署,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。

    详细混部配置模板

    以上 TiDB 集群拓扑文件中,详细的配置项说明见。

    混合部署的关键参数介绍

    本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至上一步的配置模板中。

    • TiKV 进行配置优化

      • readpool 线程池自适应,配置 参数可以使 readpool.storagereadpool.coprocessor 共用统一线程池,同时要分别设置自适应开关。

        • 计算公式如下:

          1. readpool.unified.max-thread-count = cores * 0.8 / TiKV 数量
      • 如果多个 TiKV 实例部署在同一块物理磁盘上,需要在 tikv 配置中添加 capacity 参数:

    • label 调度配置

      由于采用单机多实例部署 TiKV,为了避免物理机宕机导致 Region Group 默认 3 副本的 2 副本丢失,导致集群不可用的问题,可以通过 label 来实现 PD 智能调度,保证同台机器的多 TiKV 实例不会出现 Region Group 只有 2 副本的情况。

      • 相同物理机配置相同的 host 级别 label 信息:

        1. config:
        2. server.labels:
      • PD 配置

        PD 需要配置 labels 类型来识别并调度 Region:

    • 绑核

      • 在实例参数模块配置对应的 numa_node 参数,并添加对应的物理 CPU 的核数;

      • numa 绑核使用前,确认已经安装 numactl 工具,以及物理机对应的物理机 CPU 的信息后,再进行参数配置;

      • numa_node 这个配置参数与 numactl --membind 配置对应。