为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
-
【TiDB 版本】:tidb-v3.0.11
-
【问题描述】: 最近在安装测试一下 tidb 开源数据库,但是对于参数问tikv.yml tidb.yml pd.yml 等参数文件, 有没有生产上最佳配置实践的文档,因为对每个参数文件如何配置,可以使得tidb 集群达到最佳性能
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【TiDB 版本】:tidb-v3.0.11
【问题描述】: 最近在安装测试一下 tidb 开源数据库,但是对于参数问tikv.yml tidb.yml pd.yml 等参数文件, 有没有生产上最佳配置实践的文档,因为对每个参数文件如何配置,可以使得tidb 集群达到最佳性能
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
如果没有特殊的场景和业务需求,建议使用默认配置,可以满足通用的性能要求;
最好能带业务做实际压测,并根据实际监控表现进行分析,根据需要调整相关配置参数;
测试使用前,还可以参考官网的参数说明和最佳实践文档
TiKV 参数调优参考 https://pingcap.com/docs-cn/stable/reference/performance/tune-tikv/
TiDB 参数具体说明参考 https://pingcap.com/docs-cn/stable/reference/configuration/tidb-server/
TiDB 使用的最佳实践 https://pingcap.com/blog-cn/#最佳实践
TiKV 参数调优参考 https://pingcap.com/docs-cn/stable/reference/performance/tune-tikv/ 这个文档里面的参数配置不全,有么有更详细的,不知道如果tikv 个数的多少,由哪个参数控制 ,pd 和 tidb 节点的参数配置文件还是没有,由于是新手,还在初学阶段,对配置还在学习中,官方文档也是看了好多
tikv 的个数是在部署时指定的,比如单机单实例或单机多实例部署,参考部署文档
https://pingcap.com/docs-cn/stable/how-to/deploy/orchestrated/ansible/
tidb 和 pd 在使用 ansible 部署之后在 tidb-ansible/conf 目录下中的 tidb.yml 和 pd.yml 参数模板文件中包含常用参数解释说明,更多配置参考
https://pingcap.com/docs-cn/stable/reference/configuration/tidb-server/configuration-file/
https://pingcap.com/docs-cn/stable/reference/configuration/pd-server/configuration-file/
对于我们新手来说,需要一个能够快速上手,对tidb各个参数文件进行调优的配置,官方文档上有很多参数,虽然上面有解释各个参数,但是实际内在意义我可能并不懂,应该配置多大也不确定。对于新手的我,如果要在生产上配置参数,就是想要一个总的配置文件,我再配置生产tidb 集群的时候,哪些参数是可以固定不变使用默认参数,哪些参数是需要根据内存、cpu、节点数 或者其他因素,动态调这些整参数。
例如: 官方文档有参数
high-concurrency
normal-concurrency
low-concurrency
在生产配置文件中,都是线程池,我是否需要调整配置 ,配置成多大合理,根据什么来配置,完全不是很理解
使用默认配置就可以,有些默认值是固定的,比如上面 readpool 的 concurrency,有些默认参数是根据系统配置自动设置的,比如 coprocessor 的 concurency;除非性能遇到瓶颈,通常情况不需要关注默认的参数配置。
那我们需要关注的参数有哪些
如果是多实例部署,关注 block-cache-size 下的 capacity 参数,缓存的大小对于读写性能影响比较大,以及 coprocessor 下的 normal-concurrency 参数,大部分查询请求基本都会走到这个线程池,此外就是 TiKV 各个 Thread CPU 线程个数配置是否合理,关注 TiKV 监控 Thread CPU 的使用率,避免某个线程池负载过高达到瓶颈。