最佳实践

云数据库 HTAP for CockroachDB 套餐选择

云数据库 HTAP for CockroachDB 为用户提供是 2.0 版本的 CockroahDB 数据库;CockroachDB 是一种分布式数据库,可以实现动态扩容,异地多活,全球部署等,支持 ACID 事务,标准SQL接口,具有强一致性和高可用性。百度智能云中有丰富的套餐供用户选择,产品套餐规格从双核 2G 内存到 8 核 64G。用户可以根据自己的业务规模与数据量选择合适的套餐。以下是一些建议,供用户在创建云数据库 HTAP for CockroachDB 实例时参考。

  1. 内存与 CPU 选择

  2. 磁盘容量选择

    云数据库 HTAP for CockroachDB 为用户提供了从 5GB 到 1TB 容量的本地高性能 SSD 磁盘存储,用户可以根据自己的数据量选择合适的磁盘大小,用户选择磁盘容量时可参考下面的公式:

    用户数据量 ∗ 集群节点副本数 < 选择节点的磁盘容量 ∗ 节点数

  3. 云数据库 HTAP for CockroachDB 集群副本数量与节点数量的选择

    云数据库 HTAP for CockroachDB 为用户提供多副本(至少 3 副本)的 CockroachDB 集群,用户可以根据业务的实际情况(如容灾情况、实际的数据量),选择集群的副本数量与节点数量。不过用户后期也可以通过套餐升级来变更节点的套餐,通过扩容来增加节点数量。

影响数据库性能的几个参数

  • max-sql-memory

    表示可以存储sql查询语句临时结果集的最大内存空间。该参数默认值是128MB,增大该参数,能够提高用户在同一时刻所允许的连接数,同时可以提高用户在使用ORDER BY, GROUP BY, DISTINCT与join时,所能允许的中间结果集容量。

  • max-disk-temp-storage

    表示可以可存储超出--max-sql-memory定义的sql查询语句临时结果集的最大磁盘存储空间。该参数默认值为32GB,用户可根据实际需求调整该参数。

  • cache

    表示缓存的大小。默认值是128MB,提高该参数值,有利于提高集群的读性能,在生产环境中最好设置25%以上的内存空间。

  • kv.transaction.max_intents_bytes

    该参数用户设置一个事务中写入所涉及到的字节数。默认值为256K,如果用户使用场景涉及一些大事务,且这些事务涉及到大量的写操作,可以调大该参数值。

  • kv.snapshot_rebalance.max_rate

    表示进行rebalance时,每秒rebalance的数据量。默认值是2MB/s,通过调整该参数可控制rebalance的速度。

  • kv.snapshot_recovery.max_rate

    表示数据副本时,每秒恢复的数据量。默认值为8MB/s,通过调整该参数可控制恢复副本的速度

注:上述参数的选择还要基于用户选择的套餐进行考虑。

运维操作

cockroach zone命令

可以通过该命令配置gc回收时间,集群中range的大小(默认range大小为64M),同时还可以修改集群中副本的数量。

  • lifetime

    在生成证书时,该参数配置证书的生效时间,可根据实际业务配置该时间。