如何选择TDSQL实例配置和分片配置

最近更新时间: 2024-10-17 17:10:00

TDSQL 选型概述

TDSQL 由分片(sharding)组成,分片的规格和分片数量决定了 TDSQL 实例的处理能力。理论上来讲:

  • TDSQL 实例读写并发性能 = ∑(某规格分片性能 * 某规格分片数量)
  • TDSQL 实例事务性能 = ∑(某规格分片事务性能 * 70% * 某规格分片数量)

因此,分片规格越高、分片数量越多,实例的处理能力越强。而分片性能,主要与 CPU / 内存 相关,并以 QPS 为基础衡量指标,我们在分片性能说明章节,给出了大致性能指标。

TDSQL 分片规格的选择

TDSQL 分片规格的选择,主要从三个方面需求来决定:1、性能需求;2、容量需求;3、其他要求。

性能需求:通过预判至少6个月的性能规模和可能增长,您可以确定您分布式实例所需总 CPU / 内存 规模。 容量需求:通过预判至少1年的容量规模和可能增长,您可以确定您分布式实例所需总 磁盘 规模。 其他要求:我们建议一个分片至少存储5000W行数据,并考虑到业务中所需的广播表、单表,和节点内 join 等业务需求。

建议您先确保让单个分片配置较大,而分片数量较少。

综合上述来看,我们预估您可能有如下几种业务特点,推荐策略如下:

  • 使用 TDSQL 做功能性测试,且对性能没有特别要求:2个分片,每个分片配置为:内存/磁盘:2GB/25GB
  • 业务发展初期,总数据规模较小但增长快的选型:2个分片,每个分片配置为:内存/磁盘:16GB/200GB
  • 业务发展稳定,根据业务实际情况选型:4个分片,每个分片配置等于:当前业务峰值*增长率/4

TDSQL 分片性能测试

数据库基准性能测试为 sysbench 0.5 工具。

修改说明:对 sysbench 自带的 otlp 脚本做了修改,读写比例修改为 1:1,并通过执行测试命令参数 oltp_point_selects 和 oltp_index_updates 控制读写比例。本文测试用例的均采用4个 select 点,1个 update 点,读写比例保持 4:1。

产品性能与物理服务器配置有关联关系,本性能测试采用(24core,512GB内存,nvme-SSD7200GB磁盘)

vCPU(核) 内存(GB) 存储空间(GB) 数据集(GB) 客户端数 单客户端并发数 QPS TPS
1 2GB 100GB 46GB 1 128 1880 351
2 4GB 200GB 76GB 1 128 3983 797
2 8GB 200GB 142GB 1 128 6151 1210
4 16GB 400GB 238GB 1 128 10098 2119
4 32GB 700GB 238GB 2 128 20125 3549
8 64GB 1T 378GB 2 128 37956 7002
12 96GB 1.5T 378GB 3 128 51026 10591
16 120GB 2T 378GB 3 128 81050 15013
24 240GB 3T 567GB 4 128 96891 17698
48 480GB 6T 567GB 6 128 140256 26599

此处 TPS 为单机 TPS,并非测试的是分布式事务的 TPS。 根据运营策略要求,当前 TDSQL 的(部分)实例都采用闲时超用技术,所以您可能在您的监控中看到 CPU 利用率超过100%的情况。