2.5.6 TiKV Tuning Guide(TIDB 的 TiKV 性能优化指南)@2班+杨阳

课程名称:TiKV Tuning Guide(TIDB 的 TiKV 性能优化指南)

学习时长:1小时

课程收获:TIDB 的 TiKV 性能优化

课程内容:

TiKV调优路径
发现SQL耗时上涨,优先检查TiDB和TiKV之间通信的延迟,这个延迟代表TiKV侧执行且回复TiDB侧的大致时间,通过对比Tikv侧执行的时间,大致可以推算网络是否正常。
确定延迟TiKV侧,通过分析TiKV的存储引擎,可以判断落盘是否出现问题,如不是,则是出现在TiKV的其他部分,如Raft同步,等待锁等.

tikv体系结构:
TiKV 是一个分布式事务型key-value数据库,受Google spanner 和 Hbase的启发,不依赖于分布式文件系统。
按照key的顺序划分成大致等长的数据块,称为Region。每个Region有多个副本,只有一个副本对外提供读写服务,这个副本称为leader,其他称为Follower。
TiKV使用Raft协议保证数据同步,副本数据一致性。


TIKV分层架构:

TiKV存储层
事务层,无状态
Raft
RocksDB
TiKV模型
事务-调度池
Raft-Raftstore线程
RocksDB-应用线程TIKV模块:

tikv优化:
一般读延迟在100MS以下、写延迟在500MS以下;


Raft store以下层总耗时:


Rafte store线程和APPLY线程执行情况:
Rafte store线程:transaction层向raft层写数据与RAFT接收到消息并开始处理等待时间;
APPLY线程:rafter层leader和fowllor达成一致,并准备真正写入数据等待时间
APPLY时间高很可能是APPLY线程数配置低;
propose延迟高很可能是磁盘性能不好或者raft线程数配比太少

常见问题:
Write Stall
过多的Memory table
Coprocessor && tombstone
索引扫描
表扫描
RocksDB 统计信息
rockDB写入流程:

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料