课程名称:课程版本(301)+ 3.7.7 TiKV optimization(TiKV Server 优化)
学习时长:30分钟
课程收获:学习了TiUP工具的适用范围和各种操作
课程内容:
- TiKV的架构
- TiKV的请求流程
- 写请求流程
分析写请求的瓶颈,通过以下指标
A) Scheduler worker CPU,如果持续使用超过80%的时候,建议扩容
B) 如果上面指标没有问题,那就判断是否慢在了raftstore,可以查看写延迟指标Storage async write duration
C) 如果上面指标依然没有问题,接下来分析瓶颈是否出现在consensus层,可以通过raft store cpu和async apply CPU两个指标来看,如果比较高,可以通过调整store-pool-size和apply-pool-size两个指标进行调整
D) 如果上面指标也没有问题,那就查看储存层,看看IO是否达到瓶颈,可以通过Write duration和Write stall duration两个指标来看,以及查看Disk Load和Disk IO untilration两个指标
E) 检查负载是否比较高,CPU Usage, Load Average
F)
G) 如果上述都没有瓶颈,那就需要观察一下网络是否存在瓶颈,查看commit log duration和99% commit log duration per server,raftstore.raft-max-inflight-msgs和raftstore.raft-max-size-per-msg两个参数进行调节 - 读请求流程
A) 分析读请求的瓶颈,Thread CPU的Unified read pool CPU,可以适当提高readpool.unified.max-thread-count参数值
B) 等待时间很高造成瓶颈,可以看是否有大范围scan,负载是否均衡,线程池是否太小,错误的执行计划
C) 看block cache hit,如果命中率太低,可以调大storage.block-cache.capacity的大小
学习过程中参考的其他资料