tidb pd tikv参数文如何配置,可以是集群达到最佳性能

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【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 的个数是在部署时指定的,比如单机单实例或单机多实例部署,参考部署文档

tidb 和 pd 在使用 ansible 部署之后在 tidb-ansible/conf 目录下中的 tidb.yml 和 pd.yml 参数模板文件中包含常用参数解释说明,更多配置参考

对于我们新手来说,需要一个能够快速上手,对tidb各个参数文件进行调优的配置,官方文档上有很多参数,虽然上面有解释各个参数,但是实际内在意义我可能并不懂,应该配置多大也不确定。对于新手的我,如果要在生产上配置参数,就是想要一个总的配置文件,我再配置生产tidb 集群的时候,哪些参数是可以固定不变使用默认参数,哪些参数是需要根据内存、cpu、节点数 或者其他因素,动态调这些整参数。

例如: 官方文档有参数

high-concurrency

  • 处理高优先级读请求的线程池线程数量。
  • 默认值:4
  • 最小值:1

normal-concurrency

  • 处理普通优先级读请求的线程池线程数量。
  • 默认值:4
  • 最小值:1

low-concurrency

  • 处理低优先级读请求的线程池线程数量。
  • 默认值:4
  • 最小值:1

在生产配置文件中,都是线程池,我是否需要调整配置 ,配置成多大合理,根据什么来配置,完全不是很理解

使用默认配置就可以,有些默认值是固定的,比如上面 readpool 的 concurrency,有些默认参数是根据系统配置自动设置的,比如 coprocessor 的 concurency;除非性能遇到瓶颈,通常情况不需要关注默认的参数配置。

那我们需要关注的参数有哪些

如果是多实例部署,关注 block-cache-size 下的 capacity 参数,缓存的大小对于读写性能影响比较大,以及 coprocessor 下的 normal-concurrency 参数,大部分查询请求基本都会走到这个线程池,此外就是 TiKV 各个 Thread CPU 线程个数配置是否合理,关注 TiKV 监控 Thread CPU 的使用率,避免某个线程池负载过高达到瓶颈。