课程名称:课程版本(201)+ 2.5.6 TiKV Tuning Guide(TIDB 的 TiKV 性能优化指南)
学习时长:
30 min
课程收获:
再次复习TiKV架构,如何判断TiKV中是否出现问题,排查问题所在和解决方法。
课程内容:
Tuing Roadmap
- 优先排查TiDB 和 TiKV的通信问题
- 确定为TiKV部分问题之后对TiKV进行排查
Architect
- 只有Leader提供读写服务
- raft保持一致
- RocksDB单机存储引擎
- Percolater 事务
- Raft 保持数据一致
- Leader为单个,Follower为多个,一主多备
- 多数副本持久化改动,Leader commit这个改动
- raftstore 负责维护 raft状态机和日志
- raft log 就是一个 RocksDB实例
- raft log 被同步到多数TiKV节点中就可以被Apply
TiKV Tuing Guide
-
面板查看是否有异常
-
关注Prewrite 和 commit是否有异常
-
判断是TiKV问题还是TiDB问题
-
KV request QPS是否符合比例
-
Writer Requset
- 两阶段提交
- 分析走哪些TiKV接口,观察接口状态来判断问题所在
-
Storage async write
- 事务层下层总耗时
- 延时较高则问题出在下层
-
Raft propose
- Propose wait duration per server
- Apply wait duration per server
- Apply 延迟高则Apply线程数配比太少
- Propose 延迟高则盘太差,或者Raft线程数配比太少
-
Server CPU
- 观察TiKV进程CPU
- CPU占用率达到上限,则各个模块上涨
-
Thread CPU
Common Problems
学习过程中遇到的问题或延伸思考:
无
学习过程中参考的其他资料
无