[转帖]混合部署拓扑

混合,部署,拓扑 · 浏览次数 : 0

小编点评

**单机多实例部署 TiDB 和 TiKV 的关键参数** | 参数 | 值 | 描述 | |---|---|---| | readpool.unified.max-thread-count | cores * 0.8 | 配置并行线程池数量,根据物理 CPU 的核心数动态调整 | | storage.block-cache.capacity | (MEM_TOTAL * 0.5 / TiKV 实例数量) | 配置存储缓存的容量,根据实例数量动态调整 | | readpool.storage.use-unified-pool | true | 使用统一线程池进行读写操作 | | readpool.coprocessor | use_unified_pool: true | 使用统一线程池进行读写操作 | | raftstore.capacity | 磁盘总容量 / TiKV 实例数量 | 配置raftstore 的存储容量,根据实例数量动态调整 | | pd.replication.location-labels | [\"host\"] | 配置PD智能调度时使用的 Region 的标签 | | numa_node | | 指定 numa 绑核的实例参数 |

正文

https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance

 

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

拓扑信息

实例个数物理机配置IP配置
TiDB 6 32 VCore 64GB 10.0.1.1
10.0.1.2
10.0.1.3
配置 numa 绑核操作
PD 3 16 VCore 32 GB 10.0.1.4
10.0.1.5
10.0.1.6
配置 location_labels 参数
TiKV 6 32 VCore 64GB 10.0.1.7
10.0.1.8
10.0.1.9
1. 区分实例级别的 port、status_port;
2. 配置全局参数 readpool、storage 以及 raftstore;
3. 配置实例级别 host 维度的 labels;
4. 配置 numa 绑核操作
Monitoring & Grafana 1 4 VCore 8GB * 1 500GB (ssd) 10.0.1.10 默认配置

拓扑模版

简单混部配置模板

详细混部配置模板

以上 TiDB 集群拓扑文件中,详细的配置项说明见通过 TiUP 部署 TiDB 集群的拓扑文件配置

混合部署的关键参数介绍

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

  • TiKV 进行配置优化

    • readpool 线程池自适应,配置 readpool.unified.max-thread-count 参数可以使 readpool.storage 和 readpool.coprocessor 共用统一线程池,同时要分别设置自适应开关。

      • 开启 readpool.storage 和 readpool.coprocessor

        readpool.storage.use-unified-pool: true readpool.coprocessor.use-unified-pool: true
      • 计算公式如下:

        readpool.unified.max-thread-count = cores * 0.8 / TiKV 数量
    • storage CF (all RocksDB column families) 内存自适应,配置 storage.block-cache.capacity 参数即可实现 CF 之间自动平衡内存使用。

      • 计算公式如下:

        storage.block-cache.capacity = (MEM_TOTAL * 0.5 / TiKV 实例数量)
    • 如果多个 TiKV 实例部署在同一块物理磁盘上,需要在 tikv 配置中添加 capacity 参数:

      raftstore.capacity = 磁盘总容量 / TiKV 实例数量
  • label 调度配置

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

    • TiKV 配置

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

      config: server.labels: host: tikv1
    • PD 配置

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

      pd: replication.location-labels: ["host"]
  • numa_node 绑核

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

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

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

 
注意
  • 编辑配置文件模版时,注意修改必要参数、IP、端口及目录。
  • 各个组件的 deploy_dir,默认会使用 global 中的 <deploy_dir>/<components_name>-<port>。例如 tidb 端口指定 4001,则 deploy_dir 默认为 '/tidb-deploy/tidb-4001'。因此,在多实例场景下指定非默认端口时,无需再次指定目录。
  • 无需手动创建配置文件中的 tidb 用户,TiUP cluster 组件会在部署主机上自动创建该用户。可以自定义用户,也可以和中控机的用户保持一致。
  • 如果部署目录配置为相对路径,会部署在用户的 Home 目录下。

与[转帖]混合部署拓扑相似的内容:

[转帖]混合部署拓扑

https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance 本文介绍 TiDB 集群的 TiKV 和 TiDB 混合部署拓扑以及主要参数。常见的场景为,部署机为多路 CPU 处理器,内存也充足,为提高物理机资源利用率,可单

[转帖]三节点混合部署的最佳实践

https://docs.pingcap.com/zh/tidb/stable/three-nodes-hybrid-deployment#%E5%8F%82%E6%95%B0%E8%B0%83%E6%95%B4 在对性能要求不高且需要控制成本的场景下,将 TiDB、TiKV、PD 混合部署在三台机

[转帖]生产环境 TiDB 集群混合部署实践

https://tidb.net/book/tidb-monthly/2022/2022-04/usercase/tidb-cluster 一、背景​ 由于各种场外因素导致我们不能自由选择的理想硬件环境,加之目前单台物理机的硬件配置往往都高于需求,为了更合理地规划资源,很多时候一台服务器不能够“奢侈

[转帖]全局负载均衡方案

https://www.cnblogs.com/charlieroro/p/15822238.html 本文经验更适用于混合云场景,公有云一般直接使用供应商提供的LB即可。 简介 当在多云(可能是混合云)中使用Kubernetes或Openshift部署应用时,需要考虑到如何跨集群分发应用流量。为了

[转帖]软件定义边界SDP

SDP简介 发生变化的边界模型SDP的概念SDP架构SDP工作流SDP部署模式客户端—网关模型客户端—服务器模型服务器—服务器模型客户端—服务器—客户端模型 SDP应用场景企业应用隔离私有云和混合云软件即服务(SaaS)基础设施即服务(IaaS)平台即服务(PaaS)基于云的虚拟桌面基础架构(VDI

[转帖]Nginx惊群效应引起的系统高负载

https://zhuanlan.zhihu.com/p/401910162 原创:蒋院波 导语:本文从进程状态,进程启动方式,网络io多路复用纬度等方面知识,分享解决系统高负载低利用率的案例 前言: 趣头条SRE团队,从服务生命周期管理、混沌工程、业务核心链路治理、应急预案、服务治理(部署标准化、

[转帖]人工智能 Java混合模式火焰图

https://www.dazhuanlan.com/smallnight/topics/1040103 在做性能调优的时候,我们通常会借助一些性能分析工具(比如 perf,DTrace)分析系统资源的使用情况,比如 CPU、内存等,但这些工具分析的结果通常是文本形式,不够直观,不便于快速定位系统瓶

[转帖]人工智能 Java混合模式火焰图

https://www.dazhuanlan.com/smallnight/topics/1040103 在做性能调优的时候,我们通常会借助一些性能分析工具(比如 perf,DTrace)分析系统资源的使用情况,比如 CPU、内存等,但这些工具分析的结果通常是文本形式,不够直观,不便于快速定位系统瓶

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis