tidb 集群配置
TiDB 配置
# 性能相关配置performance: # TiDB 的 CPU 使用数量, 最大可用 cpu 个数。 默认值为 0 表示使用机器上所有的 CPU,也可以设置成 n,那么 TiDB 会使用 n 个 CPU 数量。 max-procs: 16 # TiDB 一个事务允许的最大语句条数限制 stmt-count-limit: 5000tikv-client: # 跟每个 TiKV 之间建立的最大连接数。 grpc-connection-count: 16 # 执行事务提交时,最大的超时时间。 commit-timeout: 41s
PD 配置
# 元信息数据库存储空间的大小,默认 2GB。quota-backend-bytes: 2147483648# etcd leader 选举的超时时间。election-interval: 3s# metric 监控相关的配置项metric: # 向 promethus 推送监控指标数据的间隔时间 interval: 15s# 调度相关的配置项schedule: # 控制 Region Merge 的 size 上限,当 Region Size 大于指定值时 PD 不会将其与相邻的 Region 合并 max-merge-region-size: 20 # 控制 Region Merge 的 key 上限,当 Region key 大于指定值时 PD 不会将其与相邻的 Region 合并 max-merge-region-keys: 200000 # 控制对同一个 Region 做 split 和 merge 操作的间隔,即对于新 split 的 Region 一段时间内不会被 merge。 split-merge-interval: 1h # 同时进行 leader 调度的任务个数。 leader-schedule-limit: 4 # 同时进行 Region 调度的任务个数 region-schedule-limit: 4 # 同时进行 replica 调度的任务个数 replica-schedule-limit: 8 # 同时进行的 Region Merge 调度的任务,设置为 0 则关闭 Region Merge merge-schedule-limit: 8# 副本相关的配置项replication: # 副本数量 max-replicas: 3 # 标签相关的配置项 label-property
TiKV 配置
# Http API 服务的工作线程数量。status-thread-pool-size: 1# gRPC 消息的压缩算法,取值:none, deflate, gzipgrpc-compression-type: none# gRPC 工作线程的数量grpc-concurrency: 4# 一个 gRPC 链接中最多允许的并发请求数量grpc-concurrent-stream: 1024# tikv 节点之间用于 raft 通讯的链接最大数量server.grpc-raft-conn-num: 10# gRPC stream 的 window 大小 (KB|MB|GB)server.grpc-stream-initial-window-size: 2MB# 存储线程池相关的配置项readpool.storage: # 处理高优先级读请求的线程池线程数量 high-concurrency: 4 # 处理普通优先级读请求的线程池线程数量 normal-concurrency: 4 # 处理低优先级读请求的线程池线程数量 low-concurrency: 4 # 高优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy max-tasks-per-worker-high: 2000 # 普通优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy max-tasks-per-worker-normal: 2000 # 低优先级线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy max-tasks-per-worker-low: 2000 # Storage 读线程池中线程的栈大小 (单位:KB|MB|GB) stack-size: 10MB# 协处理器线程池相关的配置项readpool.coprocessor: # 处理高优先级 Coprocessor 请求(如点查)的线程池线程数量。默认值:CPU * 0.8 high-concurrency # 处理普通优先级 Coprocessor 请求的线程池线程数量。默认值:CPU * 0.8 normal-concurrency # 处理低优先级 Coprocessor 请求(如扫表)的线程池线程数量。默认值:CPU * 0.8 low-concurrency # 高优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。 max-tasks-per-worker-high: 2000 # 普通优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。 max-tasks-per-worker-normal: 2000 # 低优先级线程池中单个线程允许积压的任务数量,超出后会返回 Server Is Busy。 max-tasks-per-worker-low: 2000# 存储相关的配置项。storage: # 是否为 RocksDB 的所有 CF 都创建一个 `shared block cache`。 # 推荐设置:capacity = MEM_TOTAL * 0.5 / TiKV 实例数量 block-cache: capacity: "1GB" # scheduler 一次获取最大消息个数 scheduler-notify-capacity: 10240 # scheduler 内置一个内存锁机制,防止同时对一个 key 进行操作。每个 key hash 到不同的槽。 scheduler-concurrency: 2048000 # scheduler 线程个数,主要负责写入之前的事务一致性检查工作 scheduler-worker-pool-size: 4 # 写入数据队列的最大值,超过该值之后对于新的写入 TiKV 会返回 Server Is Busy 错误。 scheduler-pending-write-threshold: 100MB# raftstore 相关的配置项raftstore: # 数据、log 落盘是否 sync,注意:设置成 false 可能会丢数据。 sync-log: true # 开启 Prevote 的开关,开启有助于减少隔离恢复后对系统造成的抖动。 prevote: true # raft 库的路径,默认存储在 storage.data-dir/raft 下 raftdb-path: # 状态机 tick 一次的间隔时间 raft-base-tick-interval: 1s # 发送心跳时经过的 tick 个数,即每隔 raft-base-tick-interval * raft-heartbeat-ticks 时间发送一次心跳。 raft-heartbeat-ticks: 2 # 发起选举时经过的 tick 个数,即如果处于无主状态,大约经过 raft-base-tick-interval * raft-election-timeout-ticks 时间以后发起选举 # 最小值:raft-heartbeat-ticks raft-election-timeout-ticks: 10# rocksdb 相关的配置项。rocksdb: # RocksDB 后台线程个数。 max-background-jobs: 8 # RocksDB 进行 subcompaction 的并发个数。 max-sub-compactions: 1 # RocksDB 可以打开的文件总数。 max-open-files: 40960 # RocksDB Manifest 文件最大大小。 max-manifest-file-size: 128MB # 自动创建 DB 开关。 create-if-missing: true# rocksdb defaultcf 相关的配置项。rocksdb.defaultcf # 设置 rocksdb block 大小 block-size: 64KB # 设置 rocksdb block 缓存大小。默认值:机器总内存 / 4 block-cache-size # 开启或关闭 block cache。 disable-block-cache: false # 开启或关闭缓存 index 和 filter。 cache-index-and-filter-blocks: true# Titan 相关的配置项。rocksdb.titan: # 开启或关闭 Titan。默认值:false enabled: true # Titan Blob 文件存储目录。默认值:titandb dirname: # 控制是否关闭 Titan 对 Blob 文件的 GC。 disable-gc: false # Titan 后台 GC 的线程个数。 max-background-gc: 1# rocksdb defaultcf titan 相关的配置项。rocksdb.defaultcf.titan: # 最小存储在 Blob 文件中 value 大小,低于该值的 value 还是存在 LSM-Tree 中。 min-blob-size: 1KB # Blob 文件所使用的压缩算法,可选值:no, snappy, zlib, bzip2, lz4, lz4hc, zstd。 blob-file-compression: lz4 # Blob 文件的 cache 大小,默认:0GB blob-cache-size: 0GB # 做一次 GC 所要求的最低 Blob 文件大小总和 min-gc-batch-size: 16MB# rocksdb writecf 相关的配置项。rocksdb.writecf: # block cache size。默认值:机器总内存 * 15%.单位:MB|GB block-cache-size # 开启优化 filter 的命中率的开关。 optimize-filters-for-hits: false # 开启将整个 key 放到 bloom filter 中的开关。 whole-key-filtering: false# ocksdb lockcf 相关配置项。rocksdb.lockcf: # block cache size。默认值:机器总内存 * 2% 。 单位:MB|GB block-cache-size: # 开启优化 filter 的命中率的开关。 optimize-filters-for-hits: false# raftdb 相关配置项。raftdb: # RocksDB 后台线程个数。 max-background-jobs: 2 # RocksDB 进行 subcompaction 的并发数。 max-sub-compactions: 1 # WAL 存储目录。默认值:/tmp/tikv/store wal-dir:# import 导入相关的配置项。import: # 处理 RPC 请求线程数。 num-threads: 8 # 并发导入工作任务数。 num-import-jobs: 8