最佳实践
云数据库 HTAP for CockroachDB 套餐选择
云数据库 HTAP for CockroachDB 为用户提供是 2.0 版本的 CockroahDB 数据库;CockroachDB 是一种分布式数据库,可以实现动态扩容,异地多活,全球部署等,支持 ACID 事务,标准SQL接口,具有强一致性和高可用性。百度智能云中有丰富的套餐供用户选择,产品套餐规格从双核 2G 内存到 8 核 64G。用户可以根据自己的业务规模与数据量选择合适的套餐。以下是一些建议,供用户在创建云数据库 HTAP for CockroachDB 实例时参考。
-
内存与 CPU 选择
-
磁盘容量选择
云数据库 HTAP for CockroachDB 为用户提供了从 5GB 到 1TB 容量的本地高性能 SSD 磁盘存储,用户可以根据自己的数据量选择合适的磁盘大小,用户选择磁盘容量时可参考下面的公式:
用户数据量 ∗ 集群节点副本数 < 选择节点的磁盘容量 ∗ 节点数
-
云数据库 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
在生成证书时,该参数配置证书的生效时间,可根据实际业务配置该时间。