tidb 集群配置

TiDB 配置

  1. # 性能相关配置
  2. performance:
  3. # TiDB 的 CPU 使用数量, 最大可用 cpu 个数。 默认值为 0 表示使用机器上所有的 CPU,也可以设置成 n,那么 TiDB 会使用 n 个 CPU 数量。
  4. max-procs: 16
  5. # TiDB 一个事务允许的最大语句条数限制
  6. stmt-count-limit: 5000
  7. tikv-client:
  8. # 跟每个 TiKV 之间建立的最大连接数。
  9. grpc-connection-count: 16
  10. # 执行事务提交时,最大的超时时间。
  11. commit-timeout: 41s

PD 配置

  1. # 元信息数据库存储空间的大小,默认 2GB。
  2. quota-backend-bytes: 2147483648
  3. # etcd leader 选举的超时时间。
  4. election-interval: 3s
  5. # metric 监控相关的配置项
  6. metric:
  7. # 向 promethus 推送监控指标数据的间隔时间
  8. interval: 15s
  9. # 调度相关的配置项
  10. schedule:
  11. # 控制 Region Merge 的 size 上限,当 Region Size 大于指定值时 PD 不会将其与相邻的 Region 合并
  12. max-merge-region-size: 20
  13. # 控制 Region Merge 的 key 上限,当 Region key 大于指定值时 PD 不会将其与相邻的 Region 合并
  14. max-merge-region-keys: 200000
  15. # 控制对同一个 Region 做 split 和 merge 操作的间隔,即对于新 split 的 Region 一段时间内不会被 merge。
  16. split-merge-interval: 1h
  17. # 同时进行 leader 调度的任务个数。
  18. leader-schedule-limit: 4
  19. # 同时进行 Region 调度的任务个数
  20. region-schedule-limit: 4
  21. # 同时进行 replica 调度的任务个数
  22. replica-schedule-limit: 8
  23. # 同时进行的 Region Merge 调度的任务,设置为 0 则关闭 Region Merge
  24. merge-schedule-limit: 8
  25. # 副本相关的配置项
  26. replication:
  27. # 副本数量
  28. max-replicas: 3
  29. # 标签相关的配置项
  30. label-property

TiKV 配置

  1. # Http API 服务的工作线程数量。
  2. status-thread-pool-size: 1
  3. # gRPC 消息的压缩算法,取值:none, deflate, gzip
  4. grpc-compression-type: none
  5. # gRPC 工作线程的数量
  6. grpc-concurrency: 4
  7. # 一个 gRPC 链接中最多允许的并发请求数量
  8. grpc-concurrent-stream: 1024
  9. # tikv 节点之间用于 raft 通讯的链接最大数量
  10. server.grpc-raft-conn-num: 10
  11. # gRPC stream 的 window 大小 (KB|MB|GB)
  12. server.grpc-stream-initial-window-size: 2MB
  13. # 存储线程池相关的配置项
  14. readpool.storage:
  15. # 处理高优先级读请求的线程池线程数量
  16. high-concurrency: 4
  17. # 处理普通优先级读请求的线程池线程数量
  18. normal-concurrency: 4
  19. # 处理低优先级读请求的线程池线程数量
  20. low-concurrency: 4
  21. # 高优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy
  22. max-tasks-per-worker-high: 2000
  23. # 普通优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy
  24. max-tasks-per-worker-normal: 2000
  25. # 低优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy
  26. max-tasks-per-worker-low: 2000
  27. # Storage 读线程池中线程的栈大小 (单位:KB|MB|GB)
  28. stack-size: 10MB
  29. # 协处理器线程池相关的配置项
  30. readpool.coprocessor:
  31. # 处理高优先级 Coprocessor 请求(如点查)的线程池线程数量。默认值:CPU * 0.8
  32. high-concurrency
  33. # 处理普通优先级 Coprocessor 请求的线程池线程数量。默认值:CPU * 0.8
  34. normal-concurrency
  35. # 处理低优先级 Coprocessor 请求(如扫表)的线程池线程数量。默认值:CPU * 0.8
  36. low-concurrency
  37. # 高优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。
  38. max-tasks-per-worker-high: 2000
  39. # 普通优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。
  40. max-tasks-per-worker-normal: 2000
  41. # 低优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。
  42. max-tasks-per-worker-low: 2000
  43. # 存储相关的配置项。
  44. storage:
  45. # 是否为 RocksDB 的所有 CF 都创建一个 `shared block cache`。
  46. # 推荐设置:capacity = MEM_TOTAL * 0.5 / TiKV 实例数量
  47. block-cache:
  48. capacity: "1GB"
  49. # scheduler 一次获取最大消息个数
  50. scheduler-notify-capacity: 10240
  51. # scheduler 内置一个内存锁机制,防止同时对一个 key 进行操作。每个 key hash 到不同的槽。
  52. scheduler-concurrency: 2048000
  53. # scheduler 线程个数,主要负责写入之前的事务一致性检查工作
  54. scheduler-worker-pool-size: 4
  55. # 写入数据队列的最大值,超过该值之后对于新的写入 TiKV 会返回 Server Is Busy 错误。
  56. scheduler-pending-write-threshold: 100MB
  57. # raftstore 相关的配置项
  58. raftstore:
  59. # 数据、log 落盘是否 sync,注意:设置成 false 可能会丢数据。
  60. sync-log: true
  61. # 开启 Prevote 的开关,开启有助于减少隔离恢复后对系统造成的抖动。
  62. prevote: true
  63. # raft 库的路径,默认存储在 storage.data-dir/raft 下
  64. raftdb-path:
  65. # 状态机 tick 一次的间隔时间
  66. raft-base-tick-interval: 1s
  67. # 发送心跳时经过的 tick 个数,即每隔 raft-base-tick-interval * raft-heartbeat-ticks 时间发送一次心跳。
  68. raft-heartbeat-ticks: 2
  69. # 发起选举时经过的 tick 个数,即如果处于无主状态,大约经过 raft-base-tick-interval * raft-election-timeout-ticks 时间以后发起选举
  70. # 最小值:raft-heartbeat-ticks
  71. raft-election-timeout-ticks: 10
  72. # rocksdb 相关的配置项。
  73. rocksdb:
  74. # RocksDB 后台线程个数。
  75. max-background-jobs: 8
  76. # RocksDB 进行 subcompaction 的并发个数。
  77. max-sub-compactions: 1
  78. # RocksDB 可以打开的文件总数。
  79. max-open-files: 40960
  80. # RocksDB Manifest 文件最大大小。
  81. max-manifest-file-size: 128MB
  82. # 自动创建 DB 开关。
  83. create-if-missing: true
  84. # rocksdb defaultcf 相关的配置项。
  85. rocksdb.defaultcf
  86. # 设置 rocksdb block 大小
  87. block-size: 64KB
  88. # 设置 rocksdb block 缓存大小。默认值:机器总内存 / 4
  89. block-cache-size
  90. # 开启或关闭 block cache。
  91. disable-block-cache: false
  92. # 开启或关闭缓存 index 和 filter。
  93. cache-index-and-filter-blocks: true
  94. # Titan 相关的配置项。
  95. rocksdb.titan:
  96. # 开启或关闭 Titan。默认值:false
  97. enabled: true
  98. # Titan Blob 文件存储目录。默认值:titandb
  99. dirname:
  100. # 控制是否关闭 Titan 对 Blob 文件的 GC。
  101. disable-gc: false
  102. # Titan 后台 GC 的线程个数。
  103. max-background-gc: 1
  104. # rocksdb defaultcf titan 相关的配置项。
  105. rocksdb.defaultcf.titan:
  106. # 最小存储在 Blob 文件中 value 大小,低于该值的 value 还是存在 LSM-Tree 中。
  107. min-blob-size: 1KB
  108. # Blob 文件所使用的压缩算法,可选值:no, snappy, zlib, bzip2, lz4, lz4hc, zstd。
  109. blob-file-compression: lz4
  110. # Blob 文件的 cache 大小,默认:0GB
  111. blob-cache-size: 0GB
  112. # 做一次 GC 所要求的最低 Blob 文件大小总和
  113. min-gc-batch-size: 16MB
  114. # rocksdb writecf 相关的配置项。
  115. rocksdb.writecf:
  116. # block cache size。默认值:机器总内存 * 15%.单位:MB|GB
  117. block-cache-size
  118. # 开启优化 filter 的命中率的开关。
  119. optimize-filters-for-hits: false
  120. # 开启将整个 key 放到 bloom filter 中的开关。
  121. whole-key-filtering: false
  122. # ocksdb lockcf 相关配置项。
  123. rocksdb.lockcf:
  124. # block cache size。默认值:机器总内存 * 2% 。 单位:MB|GB
  125. block-cache-size:
  126. # 开启优化 filter 的命中率的开关。
  127. optimize-filters-for-hits: false
  128. # raftdb 相关配置项。
  129. raftdb:
  130. # RocksDB 后台线程个数。
  131. max-background-jobs: 2
  132. # RocksDB 进行 subcompaction 的并发数。
  133. max-sub-compactions: 1
  134. # WAL 存储目录。默认值:/tmp/tikv/store
  135. wal-dir:
  136. # import 导入相关的配置项。
  137. import:
  138. # 处理 RPC 请求线程数。
  139. num-threads: 8
  140. # 并发导入工作任务数。
  141. num-import-jobs: 8