TiDB学习笔记(二十一)TiKV关键性能参数与配置

Transaction模块(事务模块)

shceduler pool:协调事务并发写入冲突


Raft模块:将写请求转换成raft日志,写入本地并复制到其他节点

raftstore thread:


RocksDB模块:将raft日志应用到rocksdb,进行数据持久化

apply thread:


二、写入流程

1、scheduler-worker-pool-size

scheduler 线程个数,主要负责写入之前的事务一致性检查工作。如果 CPU 核心数量大于等于 16,默认为 8;否则默认为 4。


2、store-max-batch-size

一轮处理的最大请求个数。

3、store-pool-size

表示处理 Raft 的线程池线程的数量,即 Raftstore 线程池的大小。

4、raft-max-inflight-msgs

待确认日志个数的数量,如果超过这个数量将会减缓发送日志的个数。


5、apply-pool-size

处理数据落盘的线程池中线程的数量。

6、apply-max-batch-size

一轮处理数据落盘的最大请求个数。


三、读取流程

readpool.unified.max-thread-count

统一处理读请求的线程池最多的线程数量,即 UnifyReadPool 线程池的大小。


storage.block-cache.capacity

共享 block cache 的大小


split.qps-threshold

对 Region 执行 load-base-split 的阈值。如果连续一段时间内,某个 Region 的读请求的 QPS 超过 qps-threshold,则切分该 Region


split.byte-threshold

对 Region 执行 load-base-split 的阈值。如果连续一段时间内,某个 Region 的读请求的流量超过 byte-threshold,则切分该 Region


点查:


非点查:



四、Write Stall现象


五、慢查询

小表热点

索引热点

CPU资源不足

Unified read瓶颈

Storage read pool瓶颈

执行计划不合理(全表扫描)