这样的部署架构可以吗有更好的方案吗

四台 八核16g的机器

看官网建议的部署方案,是把tflash部署在一台机器,有什么好处吗?

pd的个数要奇数

pd 3个就行,正常只有一个在工作,其他两个备份。
关键问题在于配置,16G内存的设备支持不了把tidb tikv部署在一个机器上,随时可能oom,最好把内存加到32G或者64G

pd建议3个,tikv是4个,tidb和tiflash是不是也有点多了。

这个哪里看到的

他这些的tiflash
是单独的一台机器

生产环境还是建议2台2副本,起到一个高可用的目的

1 个赞

使用4台机器(8核16G内存)部署tidb集群,这个配置部署生产环境不太合适,所以推断你应该是想要部署一个测试集群使用。

假设你的访问量和数据量不会太大、集群可以撑得住的前提下:

  • tipd 实例个数应该调整为奇数个,这里建议为3个。tipd是基于etcd实现的分布式组件,会有leader选举的协议,根据最佳实践经验,部署奇数个是最合理的。
  • tidb 个数建议至少2个,如果机器资源剩余充足可以适当添加。
  • tikv 默认是存储3副本数据,所以建议至少部署3个实例在不同的机器上。你这里部署4个tikv,应该没问题。但是建议tikv的部署盘是SSD,否则可能会有性能问题,需要提前注意。
  • tiflash 可以理解为是tikv的“第4个副本”,是列式存储的。它支持在同一台机器上单个节点使用多个盘部署。tiflash主要用于分析计算任务,即 AP 场景,所以它可能会消耗大量的计算资源(内存、CPU、IO等),建议独享机器资源,即单独部署在不同机器上。tiflash即使挂了数据也不会丢失,重启或者新部署节点后还可以从tikv继续同步来恢复,所以它的节点个数就按业务需要部署即可。生产环境为了保证数据高可用和安全性,建议至少部署2个节点。
  • prometheus、grafana节点主要是集群监控组件,消耗资源不多,根据需要放置。如果是生产环境,建议单独部署。

具体的部署配置,官方文档也有很详细的描述和说明,建议反复、仔细阅读官方部署文档后再操作。

2 个赞

问您一个问题,tiflash部署一个节点和两个节点,除了在数据高可用和安全上来说,对于单个慢sql会有提升吗

问您一个问题,tiflash部署一个节点和两个节点,除了在数据高可用和安全上来说,对于单个慢sql会有提升?

理论上节点越多性能越好,但是更多的副本对性能没什么用

多节点不就是意味着多副本吗

不一定,比如3节点可以设置2副本。

那我理解如果三台机器,两个副本,有一台不是没有用上吗

不建议设置成2副本,挂了一台机器就整个集群不能用了,默认是三副本

我刚看了下官网后,我是这样理解了,我现在部署的tiflash是四个节点,我如果用sql只创建了一个副本。那我的这一个副本的数据是分落在四个节点的吗

四台八核16g的机器,建议2tidb,3pd,3tikv,1tiflash就行了,节点多了啥也别跑,资源都耗完了。。。
另外建议同一台机器上的pd、tikv、tiflash数据目录挂载到不同的磁盘,能做numa资源隔离做一下吧,我感觉这配置随便跑点数据就要挂了。。。

1 个赞

对的,所以可以利用mpp特性

2副本指的是tiflash,tikv还是要3副本的

4个机器每台1pd1tidb1tikv1tiflash?

不推荐这样做。
稳定性甚至不如1pd1tidb放1台,3个tikv放3台。监控和pd挤一挤吧。

反正你部署了以后也会做测试的,你上点压力就会发现,tikv io压力大的时候非常吃cpu,不论读写。很容易弄得pd和tidb都抢不到cpu。tso wait会非常高,极端情况很容易整个集群挂。

tiflash不着急上,oltp稳定了,再去弄olap也没问题的。