From 7c1eebd6b46f6cd7156e7b3389d1b11e02546144 Mon Sep 17 00:00:00 2001 From: superlzs0476 Date: Fri, 22 May 2020 01:35:53 +0800 Subject: [PATCH 1/6] add hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 343 ++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index e69de29bb2d1..711ebd64620d 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -0,0 +1,343 @@ +#### 部署需求 + +部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。 + +#### 单机多实例部署的关键参数配置 + +本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至下一步的配置文件中。 + +- TiKV 进行配置优化 + + - readpool 线程池自适应,配置 `readpool.unified.max-thread-count` 参数可以使 `readpool.storage` 和 `readpool.coprocessor` 共用统一线程池,同时要分别设置自适应开关。 + + - 开启 `readpool.storage` 和 `readpool.coprocessor`: + + ```yaml + readpool.storage.use-unified-pool: false + 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` 默认开启 CF 自适应,无需修改。 + + ```yaml + storage.block-cache.shared: true + ``` + + - 计算公式如下: + + ``` + 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 信息: + + ```yml + config: + server.labels: + host: tikv1 + ``` + + - PD 配置 + + PD 需要配置 labels 类型来识别并调度 Region: + + ```yml + pd: + replication.location-labels: ["host"] + ``` + +- `numa_node` 绑核 + + - 在实例参数模块配置对应的 `numa_node` 参数,并添加对应的物理 CPU 的核数; + + - numa 绑核使用前,确认已经安装 numactl 工具,以及物理机对应的物理机 CPU 的信息后,再进行参数配置; + + - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 + +#### 拓扑信息 + +| 实例 | 个数 | 物理机配置 | IP | 配置 | +| :-- | :-- | :-- | :-- | :-- | +| TiKV | 6 | 32 VCore 64GB | 10.0.1.1
10.0.1.2
10.0.1.3 | 1. 区分实例级别的 port、status_port;
2. 配置全局参数 readpool、storage 以及 raftstore 参数;
3. 配置实例级别 host 维度的 labels;
4. 配置 numa 绑核操作| +| TiDB | 6 | 32 VCore 64GB | 10.0.1.7
10.0.1.8
10.0.1.9 | 配置 numa 绑核操作 | +| PD | 3 | 16 VCore 32 GB | 10.0.1.4
10.0.1.5
10.0.1.6 | 配置 location_lables 参数 | +| TiFlash | 1 | 32 VCore 64 GB | 10.0.1.10 | 默认端口
自定义部署目录,配置 data_dir 参数为 `/data1/tiflash/data` | + +#### 配置文件模版 topology.yaml + +> **注意:** +> +> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 +> +> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 + +> **注意:** +> +> - [部署 TiFlash](/tiflash/deploy-tiflash.md) 需要在 topology.yaml 配置文件中将 `replication.enable-placement-rules` 设置为 `true`,以开启 PD 的 [Placement Rules](/configure-placement-rules.md) 功能。 +> +> - tiflash_servers 实例级别配置 `"-host"` 目前只支持 IP,不支持域名。 +> +> - TiFlash 具体的参数配置介绍可参考 [TiFlash 参数配置](#tiflash-参数)。 + +{{< copyable "shell-regular" >}} + +```shell +cat topology.yaml +``` + +```yaml +# # Global variables are applied to all deployments and used as the default value of +# # the deployments if a specific deployment value is missing. +global: + user: "tidb" + ssh_port: 22 + deploy_dir: "/tidb-deploy" + data_dir: "/tidb-data" + +server_configs: + tikv: + readpool.unified.max-thread-count: <取值参考上文计算公式的结果> + readpool.storage.use-unified-pool: false + readpool.coprocessor.use-unified-pool: true + storage.block-cache.capacity: "<取值参考上文计算公式的结果>" + raftstore.capacity: "<取值参考上文计算公式的结果>" + pd: + replication.location-labels: ["host"] + replication.enable-placement-rules: true + +pd_servers: + - host: 10.0.1.4 + - host: 10.0.1.5 + - host: 10.0.1.6 + +tidb_servers: + - host: 10.0.1.7 + port: 4000 + status_port: 10080 + numa_node: "0" + - host: 10.0.1.7 + port: 4001 + status_port: 10081 + numa_node: "1" + - host: 10.0.1.8 + port: 4000 + status_port: 10080 + numa_node: "0" + - host: 10.0.1.8 + port: 4001 + status_port: 10081 + numa_node: "1" + - host: 10.0.1.9 + port: 4000 + status_port: 10080 + numa_node: "0" + - host: 10.0.1.9 + port: 4001 + status_port: 10081 + numa_node: "1" + +tikv_servers: + - host: 10.0.1.1 + port: 20160 + status_port: 20180 + numa_node: "0" + config: + server.labels: { host: "tikv1" } + - host: 10.0.1.1 + port: 20161 + status_port: 20181 + numa_node: "1" + config: + server.labels: { host: "tikv1" } + - host: 10.0.1.2 + port: 20160 + status_port: 20180 + numa_node: "0" + config: + server.labels: { host: "tikv2" } + - host: 10.0.1.2 + port: 20161 + status_port: 20181 + numa_node: "1" + config: + server.labels: { host: "tikv2" } + - host: 10.0.1.3 + port: 20160 + status_port: 20180 + numa_node: "0" + config: + server.labels: { host: "tikv3" } + - host: 10.0.1.3 + port: 20161 + status_port: 20181 + numa_node: "1" + config: + server.labels: { host: "tikv3" } +tiflash_servers: + - host: 10.0.1.10 + data_dir: /data1/tiflash/data +monitoring_servers: + - host: 10.0.1.7 +grafana_servers: + - host: 10.0.1.7 +alertmanager_servers: + - host: 10.0.1.7 +``` + +更详细的配置为: + +```yaml +# # Global variables are applied to all deployments and used as the default value of +# # the deployments if a specific deployment value is missing. +global: + user: "tidb" + ssh_port: 22 + deploy_dir: "/tidb-deploy" + data_dir: "/tidb-data" + +monitored: + node_exporter_port: 9100 + blackbox_exporter_port: 9115 + deploy_dir: "/tidb-deploy/monitored-9100" + data_dir: "/tidb-data-monitored-9100" + log_dir: "/tidb-deploy/monitored-9100/log" + +server_configs: + tikv: + readpool.unified.max-thread-count: <取值参考上文计算公式的结果> + readpool.storage.use-unified-pool: false + readpool.coprocessor.use-unified-pool: true + storage.block-cache.capacity: "<取值参考上文计算公式的结果>" + raftstore.capacity: "<取值参考上文计算公式的结果>" + pd: + replication.location-labels: ["host"] + replication.enable-placement-rules: true + +pd_servers: + - host: 10.0.1.4 + - host: 10.0.1.5 + - host: 10.0.1.6 + +tidb_servers: + - host: 10.0.1.7 + port: 4000 + status_port: 10080 + deploy_dir: "/tidb-deploy/tidb-4000" + log_dir: "/tidb-deploy/tidb-4000/log" + numa_node: "0" + - host: 10.0.1.7 + port: 4001 + status_port: 10081 + deploy_dir: "/tidb-deploy/tidb-4001" + log_dir: "/tidb-deploy/tidb-4001/log" + numa_node: "1" + - host: 10.0.1.8 + port: 4000 + status_port: 10080 + deploy_dir: "/tidb-deploy/tidb-4000" + log_dir: "/tidb-deploy/tidb-4000/log" + numa_node: "0" + - host: 10.0.1.8 + port: 4001 + status_port: 10081 + deploy_dir: "/tidb-deploy/tidb-4001" + log_dir: "/tidb-deploy/tidb-4001/log" + numa_node: "1" + - host: 10.0.1.9 + port: 4000 + status_port: 10080 + deploy_dir: "/tidb-deploy/tidb-4000" + log_dir: "/tidb-deploy/tidb-4000/log" + numa_node: "0" + - host: 10.0.1.9 + port: 4001 + status_port: 10081 + deploy_dir: "/tidb-deploy/tidb-4001" + log_dir: "/tidb-deploy/tidb-4001/log" + numa_node: "1" + +tikv_servers: + - host: 10.0.1.1 + port: 20160 + status_port: 20180 + deploy_dir: "/tidb-deploy/tikv-20160" + data_dir: "/tidb-data/tikv-20160" + log_dir: "/tidb-deploy/tikv-20160/log" + numa_node: "0" + config: + server.labels: { host: "tikv1" } + - host: 10.0.1.1 + port: 20161 + status_port: 20181 + deploy_dir: "/tidb-deploy/tikv-20161" + data_dir: "/tidb-data/tikv-20161" + log_dir: "/tidb-deploy/tikv-20161/log" + numa_node: "1" + config: + server.labels: { host: "tikv1" } + - host: 10.0.1.2 + port: 20160 + status_port: 20180 + deploy_dir: "/tidb-deploy/tikv-20160" + data_dir: "/tidb-data/tikv-20160" + log_dir: "/tidb-deploy/tikv-20160/log" + numa_node: "0" + config: + server.labels: { host: "tikv2" } + - host: 10.0.1.2 + port: 20161 + status_port: 20181 + deploy_dir: "/tidb-deploy/tikv-20161" + data_dir: "/tidb-data/tikv-20161" + log_dir: "/tidb-deploy/tikv-20161/log" + numa_node: "1" + config: + server.labels: { host: "tikv2" } + - host: 10.0.1.3 + port: 20160 + status_port: 20180 + deploy_dir: "/tidb-deploy/tikv-20160" + data_dir: "/tidb-data/tikv-20160" + log_dir: "/tidb-deploy/tikv-20160/log" + numa_node: "0" + config: + server.labels: { host: "tikv3" } + - host: 10.0.1.3 + port: 20161 + status_port: 20181 + deploy_dir: "/tidb-deploy/tikv-20161" + data_dir: "/tidb-data/tikv-20161" + log_dir: "/tidb-deploy/tikv-20161/log" + numa_node: "1" + config: + server.labels: { host: "tikv3" } +tiflash_servers: + - host: 10.0.1.10 + data_dir: /data1/tiflash/data +monitoring_servers: + - host: 10.0.1.7 +grafana_servers: + - host: 10.0.1.7 +alertmanager_servers: + - host: 10.0.1.7 +``` \ No newline at end of file From 1d0f26f4e97a95efc23ee44ada49dfd3e2ea7ccb Mon Sep 17 00:00:00 2001 From: superlzs0476 Date: Sat, 23 May 2020 18:12:27 +0800 Subject: [PATCH 2/6] fix hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 298 +++------------------------------- 1 file changed, 27 insertions(+), 271 deletions(-) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 711ebd64620d..4169f5d4cd4e 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -1,8 +1,32 @@ -#### 部署需求 +# 部署需求 部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 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_lables 参数 | +| 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 | 默认配置 | + +# 拓扑图 + +待补充 + +# 配置文件模版 topology.yaml + +[简单混部拓扑配置](/simple-multi-instant) +[复杂混部拓扑配置](/complex-multi-instant) + +> **注意:** +> +> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 +> +> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 + +# 单机多实例部署的关键参数配置 本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至下一步的配置文件中。 @@ -72,272 +96,4 @@ - numa 绑核使用前,确认已经安装 numactl 工具,以及物理机对应的物理机 CPU 的信息后,再进行参数配置; - - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 - -#### 拓扑信息 - -| 实例 | 个数 | 物理机配置 | IP | 配置 | -| :-- | :-- | :-- | :-- | :-- | -| TiKV | 6 | 32 VCore 64GB | 10.0.1.1
10.0.1.2
10.0.1.3 | 1. 区分实例级别的 port、status_port;
2. 配置全局参数 readpool、storage 以及 raftstore 参数;
3. 配置实例级别 host 维度的 labels;
4. 配置 numa 绑核操作| -| TiDB | 6 | 32 VCore 64GB | 10.0.1.7
10.0.1.8
10.0.1.9 | 配置 numa 绑核操作 | -| PD | 3 | 16 VCore 32 GB | 10.0.1.4
10.0.1.5
10.0.1.6 | 配置 location_lables 参数 | -| TiFlash | 1 | 32 VCore 64 GB | 10.0.1.10 | 默认端口
自定义部署目录,配置 data_dir 参数为 `/data1/tiflash/data` | - -#### 配置文件模版 topology.yaml - -> **注意:** -> -> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 -> -> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 - -> **注意:** -> -> - [部署 TiFlash](/tiflash/deploy-tiflash.md) 需要在 topology.yaml 配置文件中将 `replication.enable-placement-rules` 设置为 `true`,以开启 PD 的 [Placement Rules](/configure-placement-rules.md) 功能。 -> -> - tiflash_servers 实例级别配置 `"-host"` 目前只支持 IP,不支持域名。 -> -> - TiFlash 具体的参数配置介绍可参考 [TiFlash 参数配置](#tiflash-参数)。 - -{{< copyable "shell-regular" >}} - -```shell -cat topology.yaml -``` - -```yaml -# # Global variables are applied to all deployments and used as the default value of -# # the deployments if a specific deployment value is missing. -global: - user: "tidb" - ssh_port: 22 - deploy_dir: "/tidb-deploy" - data_dir: "/tidb-data" - -server_configs: - tikv: - readpool.unified.max-thread-count: <取值参考上文计算公式的结果> - readpool.storage.use-unified-pool: false - readpool.coprocessor.use-unified-pool: true - storage.block-cache.capacity: "<取值参考上文计算公式的结果>" - raftstore.capacity: "<取值参考上文计算公式的结果>" - pd: - replication.location-labels: ["host"] - replication.enable-placement-rules: true - -pd_servers: - - host: 10.0.1.4 - - host: 10.0.1.5 - - host: 10.0.1.6 - -tidb_servers: - - host: 10.0.1.7 - port: 4000 - status_port: 10080 - numa_node: "0" - - host: 10.0.1.7 - port: 4001 - status_port: 10081 - numa_node: "1" - - host: 10.0.1.8 - port: 4000 - status_port: 10080 - numa_node: "0" - - host: 10.0.1.8 - port: 4001 - status_port: 10081 - numa_node: "1" - - host: 10.0.1.9 - port: 4000 - status_port: 10080 - numa_node: "0" - - host: 10.0.1.9 - port: 4001 - status_port: 10081 - numa_node: "1" - -tikv_servers: - - host: 10.0.1.1 - port: 20160 - status_port: 20180 - numa_node: "0" - config: - server.labels: { host: "tikv1" } - - host: 10.0.1.1 - port: 20161 - status_port: 20181 - numa_node: "1" - config: - server.labels: { host: "tikv1" } - - host: 10.0.1.2 - port: 20160 - status_port: 20180 - numa_node: "0" - config: - server.labels: { host: "tikv2" } - - host: 10.0.1.2 - port: 20161 - status_port: 20181 - numa_node: "1" - config: - server.labels: { host: "tikv2" } - - host: 10.0.1.3 - port: 20160 - status_port: 20180 - numa_node: "0" - config: - server.labels: { host: "tikv3" } - - host: 10.0.1.3 - port: 20161 - status_port: 20181 - numa_node: "1" - config: - server.labels: { host: "tikv3" } -tiflash_servers: - - host: 10.0.1.10 - data_dir: /data1/tiflash/data -monitoring_servers: - - host: 10.0.1.7 -grafana_servers: - - host: 10.0.1.7 -alertmanager_servers: - - host: 10.0.1.7 -``` - -更详细的配置为: - -```yaml -# # Global variables are applied to all deployments and used as the default value of -# # the deployments if a specific deployment value is missing. -global: - user: "tidb" - ssh_port: 22 - deploy_dir: "/tidb-deploy" - data_dir: "/tidb-data" - -monitored: - node_exporter_port: 9100 - blackbox_exporter_port: 9115 - deploy_dir: "/tidb-deploy/monitored-9100" - data_dir: "/tidb-data-monitored-9100" - log_dir: "/tidb-deploy/monitored-9100/log" - -server_configs: - tikv: - readpool.unified.max-thread-count: <取值参考上文计算公式的结果> - readpool.storage.use-unified-pool: false - readpool.coprocessor.use-unified-pool: true - storage.block-cache.capacity: "<取值参考上文计算公式的结果>" - raftstore.capacity: "<取值参考上文计算公式的结果>" - pd: - replication.location-labels: ["host"] - replication.enable-placement-rules: true - -pd_servers: - - host: 10.0.1.4 - - host: 10.0.1.5 - - host: 10.0.1.6 - -tidb_servers: - - host: 10.0.1.7 - port: 4000 - status_port: 10080 - deploy_dir: "/tidb-deploy/tidb-4000" - log_dir: "/tidb-deploy/tidb-4000/log" - numa_node: "0" - - host: 10.0.1.7 - port: 4001 - status_port: 10081 - deploy_dir: "/tidb-deploy/tidb-4001" - log_dir: "/tidb-deploy/tidb-4001/log" - numa_node: "1" - - host: 10.0.1.8 - port: 4000 - status_port: 10080 - deploy_dir: "/tidb-deploy/tidb-4000" - log_dir: "/tidb-deploy/tidb-4000/log" - numa_node: "0" - - host: 10.0.1.8 - port: 4001 - status_port: 10081 - deploy_dir: "/tidb-deploy/tidb-4001" - log_dir: "/tidb-deploy/tidb-4001/log" - numa_node: "1" - - host: 10.0.1.9 - port: 4000 - status_port: 10080 - deploy_dir: "/tidb-deploy/tidb-4000" - log_dir: "/tidb-deploy/tidb-4000/log" - numa_node: "0" - - host: 10.0.1.9 - port: 4001 - status_port: 10081 - deploy_dir: "/tidb-deploy/tidb-4001" - log_dir: "/tidb-deploy/tidb-4001/log" - numa_node: "1" - -tikv_servers: - - host: 10.0.1.1 - port: 20160 - status_port: 20180 - deploy_dir: "/tidb-deploy/tikv-20160" - data_dir: "/tidb-data/tikv-20160" - log_dir: "/tidb-deploy/tikv-20160/log" - numa_node: "0" - config: - server.labels: { host: "tikv1" } - - host: 10.0.1.1 - port: 20161 - status_port: 20181 - deploy_dir: "/tidb-deploy/tikv-20161" - data_dir: "/tidb-data/tikv-20161" - log_dir: "/tidb-deploy/tikv-20161/log" - numa_node: "1" - config: - server.labels: { host: "tikv1" } - - host: 10.0.1.2 - port: 20160 - status_port: 20180 - deploy_dir: "/tidb-deploy/tikv-20160" - data_dir: "/tidb-data/tikv-20160" - log_dir: "/tidb-deploy/tikv-20160/log" - numa_node: "0" - config: - server.labels: { host: "tikv2" } - - host: 10.0.1.2 - port: 20161 - status_port: 20181 - deploy_dir: "/tidb-deploy/tikv-20161" - data_dir: "/tidb-data/tikv-20161" - log_dir: "/tidb-deploy/tikv-20161/log" - numa_node: "1" - config: - server.labels: { host: "tikv2" } - - host: 10.0.1.3 - port: 20160 - status_port: 20180 - deploy_dir: "/tidb-deploy/tikv-20160" - data_dir: "/tidb-data/tikv-20160" - log_dir: "/tidb-deploy/tikv-20160/log" - numa_node: "0" - config: - server.labels: { host: "tikv3" } - - host: 10.0.1.3 - port: 20161 - status_port: 20181 - deploy_dir: "/tidb-deploy/tikv-20161" - data_dir: "/tidb-data/tikv-20161" - log_dir: "/tidb-deploy/tikv-20161/log" - numa_node: "1" - config: - server.labels: { host: "tikv3" } -tiflash_servers: - - host: 10.0.1.10 - data_dir: /data1/tiflash/data -monitoring_servers: - - host: 10.0.1.7 -grafana_servers: - - host: 10.0.1.7 -alertmanager_servers: - - host: 10.0.1.7 -``` \ No newline at end of file + - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 \ No newline at end of file From aaadb73411a8e7ab870b08371677d7d06cc7be3e Mon Sep 17 00:00:00 2001 From: superlzs0476 Date: Mon, 25 May 2020 21:27:34 +0800 Subject: [PATCH 3/6] update hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 48 ++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 4169f5d4cd4e..87112a3faa4a 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -1,8 +1,14 @@ -# 部署需求 +--- +title: 混合部署拓扑 +summary: 介绍混合部署 TiDB 集群的拓扑结构。 +category: how-to +--- -部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。 +# 混合部署 + +本文介绍 TiDB 集群的 TiKV 和 TiDB 混合部署拓扑以及主要参数。 -# 拓扑信息 +## 拓扑信息 | 实例 | 个数 | 物理机配置 | IP | 配置 | | :-- | :-- | :-- | :-- | :-- | @@ -11,22 +17,7 @@ | 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 | 默认配置 | -# 拓扑图 - -待补充 - -# 配置文件模版 topology.yaml - -[简单混部拓扑配置](/simple-multi-instant) -[复杂混部拓扑配置](/complex-multi-instant) - -> **注意:** -> -> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 -> -> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 - -# 单机多实例部署的关键参数配置 +## 混合部署的关键参数配置 本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至下一步的配置文件中。 @@ -96,4 +87,21 @@ - numa 绑核使用前,确认已经安装 numactl 工具,以及物理机对应的物理机 CPU 的信息后,再进行参数配置; - - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 \ No newline at end of file + - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 + +## 通过 TiUP 部署集群的配置文件模版 topology.yaml + +### 部署目标 + +部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。 + +### 拓扑模版 + +[简单混部拓扑配置](/simple-multi-instant) +[复杂混部拓扑配置](/complex-multi-instant) + +> **注意:** +> +> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 +> +> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 \ No newline at end of file From 60ee0cd1407b1839627ae58b4f13078ed92b076f Mon Sep 17 00:00:00 2001 From: kissmydb Date: Mon, 25 May 2020 23:24:46 +0800 Subject: [PATCH 4/6] Update hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 87112a3faa4a..645e44bdfe59 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -17,9 +17,21 @@ category: how-to | 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 | 默认配置 | -## 混合部署的关键参数配置 +## 通过 TiUP 部署集群的配置文件模版 topology.yaml + +### 部署目标 + +部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。 + +### 拓扑模版 + +[简单混部配置模板](/simple-multi-instant.yaml) + +[详细混部配置模板](/complex-multi-instant.yaml) + +### 混合部署的关键参数介绍 -本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至下一步的配置文件中。 +本节介绍单机多实例的关键参数,主要用于 TiDB、TiKV 的单机多实例部署场景。你需要按照提供的计算公式,将结果填写至上一步的配置模板中。 - TiKV 进行配置优化 @@ -89,19 +101,10 @@ category: how-to - `numa_node` 这个配置参数与 `numactl --membind` 配置对应。 -## 通过 TiUP 部署集群的配置文件模版 topology.yaml - -### 部署目标 - -部署 TiDB 和 TiKV 组件的物理机为 2 路处理器,每路 16 VCore,内存也达标,为提高物理机资源利用率,可为单机多实例,即 TiDB、TiKV 通过 numa 绑核,隔离 CPU 资源。PD 和 Prometheus 混合部署,但两者的数据目录需要使用独立的文件系统。 - -### 拓扑模版 - -[简单混部拓扑配置](/simple-multi-instant) -[复杂混部拓扑配置](/complex-multi-instant) - > **注意:** > -> - 配置文件模版时,注意修改必要参数、IP、端口及目录。 +> - 编辑配置文件模版时,注意修改必要参数、IP、端口及目录。 +> +> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 > -> - 各个组件的 deploy_dir,默认会使用 global 中的 /-。例如 tidb 端口指定 4001,则 deploy_dir 默认为 /tidb-deploy/tidb-4001。因此,在多实例场景下指定非默认端口时,无需再次指定目录。 \ No newline at end of file +> - 无需手动创建配置文件中的 `tidb` 用户,TiUP cluster 组件会在部署主机上自动创建该用户。可以自定义用户,也可以和中控机的用户保持一致。 From ffeafaf07ae355a626a09571da265ecbae71a640 Mon Sep 17 00:00:00 2001 From: kissmydb Date: Tue, 26 May 2020 15:33:18 +0800 Subject: [PATCH 5/6] Update hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 645e44bdfe59..23625fd98b3e 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -25,9 +25,9 @@ category: how-to ### 拓扑模版 -[简单混部配置模板](/simple-multi-instant.yaml) +[简单混部配置模板](/config-templates/simple-multi-instance.yaml) -[详细混部配置模板](/complex-multi-instant.yaml) +[详细混部配置模板](/config-templates/complex-multi-instance.yaml) ### 混合部署的关键参数介绍 From 7cfa2e3c0e40d8f9fc804cfc276f22158d65e22c Mon Sep 17 00:00:00 2001 From: Keke Yi <40977455+yikeke@users.noreply.github.com> Date: Tue, 26 May 2020 16:18:36 +0800 Subject: [PATCH 6/6] Update hybrid-deployment-topology.md --- hybrid-deployment-topology.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hybrid-deployment-topology.md b/hybrid-deployment-topology.md index 23625fd98b3e..1a6b1c3b8ab2 100644 --- a/hybrid-deployment-topology.md +++ b/hybrid-deployment-topology.md @@ -4,7 +4,7 @@ summary: 介绍混合部署 TiDB 集群的拓扑结构。 category: how-to --- -# 混合部署 +# 混合部署拓扑 本文介绍 TiDB 集群的 TiKV 和 TiDB 混合部署拓扑以及主要参数。