求TiDB和TiKV混合部署建议

机器资源有限,目前准备将TiDB和TiKV混合部署。
目前有48C/192G物理机三台,准备每台机器上部署一个TiDB实例,一个TiKV实例。
注意到文档中的混合部署针对的是单机多实例部署,而不是单机多组件部署,所以numa绑核等配置不确定是否应该配置,或者有其他配置推荐。

  1. 可以参考这里的部署分配
    https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements

  2. 如果找不出多余的机器,那么3 个tikv已经占用了每个节点。 再分别部署 1个 pd 和 2 个 tidb 吧。
    pd+ tikv, tidb+tikv, tidb+ tikv

PD由于对机器要求不高,有额外的三台机器可以部署。
物理机只能拿出4台,其中一个要部署TiFlash,所以剩下三台准备同时部署TiDB和TiKV。
目前文档和其他地方暂时没有看到TiDB和TiKV混布有没有需要注意的,所以问问看,目前是准备按照如下方案配置的。
global:
user: “tidb”
ssh_port: 22
deploy_dir: “/opt/data/bigdata/ti/tidb-deploy”
data_dir: “/opt/data/bigdata/ti/tidb-data”
arch: “amd64”

monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115

server_configs:
tidb:
# ms
log.slow-threshold: 300
binlog.enable: false
binlog.ignore-error: false
tikv:
# false使用单独线程池处理存储请求
readpool.storage.use-unified-pool: false
# false使用单独线程池处理协处理器请求
readpool.coprocessor.use-unified-pool: true
pd:
schedule.leader-schedule-limit: 4
schedule.region-schedule-limit: 2048
schedule.replica-schedule-limit: 64
# 部署TiFlash关键参数 开启 PD 的 Placement Rules 功能
replication.enable-placement-rules: true
tiflash:
logger.level: “info”

pd_servers:

  • host: 10.61.134.35
  • host: 10.61.134.36
  • host: 10.61.134.37

tidb_servers:

  • host: 10.61.27.175
  • host: 10.61.27.191
  • host: 10.61.111.162

tikv_servers:

  • host: 10.61.27.175
  • host: 10.61.27.191
  • host: 10.61.111.162

tiflash_servers:

  • host: 10.61.39.209

如果只是测试功能,一个pd和两个tidb就好了,不用都3个吧?还是说这是正式环境?

半正式。
不正式的地方在于,只准备用部分业务场景(数据规模几百G,非核心)先跑起来看看,不准备占用太多资源
正式的地方在于,数据和场景的确是生产的,如运行下来集群规模不准备太大改动

如果按照上面的架构部署,建议先结合业务场景压测后再上线,tidb server 和 tikv 混合部署,可能存在 cpu 和内存使用的争用,导致 wait time 较高或 OOM;如果压测出现资源的竞争,可以绑核后再做下对比测试。

绑核通常用于单机部署多个 tidb 实例的典型 TP 场景,tidb server 对于内存的消耗不高,cpu vcore 较多时单机部署多个 tidb 实例,通过 numa 绑核可以提高 tidb 的 cpu 的使用率。

感谢,后面测试下来有结果了,我再反馈一下。

ok,测试之后如果有问题欢迎回帖