TIDB_5.1.0 一台服务器部署多个TIKV性能测试

【 TiDB 使用环境】
测试TIDB
目前有三台Dell 730xd配置如下:
40C-128G-12个ssd
400G_ssd x2 打算组raid1 装系统
800G_ssd x10
三台 Dell 720 配置如下:
32C-64G-2个sas
500G_sas x2 打算raid1 装系统

问题如下:
①:tidb pd tikv 所在的物理服务器系统盘,需要ssd吗?还是sas_raid1即可。
②:r730xd 打算做tikv,10个 800G_ssd 我应该怎么部署分配。
官放的配置 tikv 好像就是一个挂载点,那我是需要10个ssd 做个raid0 挂载到挂载点上吗?
③:pd tidb 监控相关我都部署到r720上没问题吧,监控需要系统盘是ssd吧。

2赞
  1. 系统盘不需要SSD
  2. 建议SSD盘都给tikv存储数据,pd对于CPU内存磁盘要求不高。建议不给太高的配置。tidb节点CPU和内存可以多给一点。
  3. 监控也不需要SSD盘。
1赞

针对第二点:服务器 10 800G_ssd 组个raid0,挂载到yaml写的data_dir吗?还是每个ssd对应一个挂载点,分配10个tikv,如果这样的话 yaml文件怎么写。

2赞

具体做不做raid看你那边的使用场景。

测试环境,3台tikv就够了,
生产环境,建议6台tikv以上

https://docs.pingcap.com/zh/tidb/v4.0/tiup-cluster-topology-reference#通过-tiup-部署-tidb-集群的拓扑文件配置

这是我这边环境的tikv配置部分,其他的配置你参考下官方文档

tikv_servers:

  • host: 172.9.77.15
    ssh_port: 22
    imported: true
    port: 20160
    status_port: 20180
    deploy_dir: /data/tidb_data
    data_dir: /data/tidb_data/data
    log_dir: /data/tidb_data/log
    arch: amd64
    os: linux
  • host: 172.9.77.16
    ssh_port: 22
    imported: true
    port: 20160
    status_port: 20180
    deploy_dir: /data/tidb_data
    data_dir: /data/tidb_data/data
    log_dir: /data/tidb_data/log
    arch: amd64
    os: linux
  • host: 172.9.77.17
    ssh_port: 22
    imported: true
    port: 20160
    status_port: 20180
    deploy_dir: /data/tidb_data
    data_dir: /data/tidb_data/data
    log_dir: /data/tidb_data/log
    arch: amd64
    os: linux
2赞

根据你这个意思 就是我得三台 r730xd,每台10个800G_ssd 做个raid0 然后挂在给/data/tidb_data/data,那我这个目录的容量大约在7T左右。我看官方的建议是单个tikv ssd容量 不要超过1.5TB。
所以我才有疑问,我单台物理机 ssd情况较多的 情况下,官方是怎么建议部署的。是一台物理机上面部署多个tikv吗?
如果一台物理机部署多个tikv,yaml部署配置文件 我怎么配置呢。一台宿主主机上的tikv实例 内存和cpu资源怎么分配,最少多少呢。如果要限制 怎么在yaml部署配置文件里面体现呢。

2赞

最好不要部署在一起。
三台物理机,每台虚拟化3个服务器每个节点2T的盘。 这样就有9个tikv了。

2赞

感谢你的耐心解答!
一台物理机 三个tikv实例,每个tikv实例使用用3个800G_ssd组成raid0,那我三个tikv对应9个ssd,三个tidb_data1,2,3 挂载点,是这么建议部署的吧。
一台物理机上三个tikv实例,肯定会有资源争抢,怎么给每个tikv实例,分配CPU 内存,或者说怎么在yaml部署配置文件里面体现出,官方文档我没看出怎么配置。

1赞

https://docs.pingcap.com/zh/tidb/v5.0/hybrid-deployment-topology 可以看一下这个

谢谢!原来是有的,那我就可以根据建议配置部署测试了。


我看可以根据host划分故障域啊,那是不是可以根据rack机柜 room机房划分故障域。跟ceph的crush map有点像。
大佬多问个问题,rack故障域或者room故障域 有yaml配置文件可参考吗?

官网上都有

跨数据中心部署拓扑 | PingCAP Docs
看到了,重新翻了下。牛逼!

:ok_hand::+1::call_me_hand:


numa_node 这个配置参数与 numactl --membind 配置对应
image
这个配置是说 我在部署yaml配置文件里面写了 numa_node:0 ,cpu跟内存都从node 0下面吗?

嗯,这个具体可以看生成的 run 脚本

numactl --cpunodebind={{.NumaNode}} --membind={{.NumaNode}} 看了下是这么用的。


我去 tiup cluster destroy tidb-csa01 显示了这个报错。
这应该是一个bug,因为我是一个物理服务器上混合部署4个tikv
因此我格式化了4个盘 分别挂载到 tidb-data1 2 3 4挂载点,因此你去删除一个我得挂载点 肯定是删除不成功的。

tidb部署环境机器:

tidb-server pd-server都在一台上,随机展示一台配置:



---------------------------------------------华丽的分割线---------------------------------------------------
tikv-server随机展示一台配置:


部署方式如下:
tikv所在的物理服务器有额外的4个ssd存储,对应部署4个tikv实例

测试工具:
sysbench version:1.0.17(epel源直接安装的) 在tidb-pd2上做的测试
image
数据预热与统计信息收集已做
oltp_point_select结果:

oltp_update_index结果:

oltp_read_only结果:

几点小疑问,希望热心的大佬们帮忙解答一下:
①数据已预热的情况下 oltp_point_select 和oltp_read_only 测出来的性能是真实性能,还是数据都被缓存到内存里了,这个性能会偏高
②性能瓶颈肯定是在 tidb服务端吧,不在sysbench 测试工具吗
③有没有大佬 有相关的其他测试数据欢迎抛出来,大家共同交流一下(官方有数据也可以抛出来看下)
④手头上没有其他机器了,有没有mysql的sysbench性能测试的抛出来看下

建议你按照官网的方式测试吧,你上面的结果,让我怀疑是你的测试没有给到 数据库压力

我的测试 就是参照的官网的测试。

可以看看 监控 ,看看 各服务器的资源使用情况