课程名称:(301)3.7.7 TiKV optimization(TiKV Server 优化)
学习时长:30min
课程收获:当遇到性能瓶颈时,知道如何进行性能提优。
课程内容:调优;读写流程
TiKV:架构图;分层设计(KV API,transaction,consensus,storage engine);TiKV模块
transaction-》scheduler pool
raft-》raftstore thread
rocksDB->apply thread
写请求:三个线程池,可自定义大小
检查是否达到瓶颈:增加scheduler-worker-pool-size
raftstore:Storage async write duration
负载是否均衡:raftstore CPU在TiKV实例间是否均衡;apply CPU在TiKV实例间是否均衡
raftstore pool或apply pool 是否瓶颈:分别增加store-pool-size或apply-pool-size
IO是否慢:raft engine和kv engine的Write Duration和Write Stall Duration
disk IO是否高:Disk Load;Disk IO Utlization
CPU load是否高:若IO是瓶颈并且CPU充足可以改变压缩等级来用CPU换IO
如果rocksdb stall且IO和CPU都不是瓶颈:level0文件;memtables;pending byets
日志提交是否慢:调大raftstore.raft-max-inflight-msgs;调大raftstore.raft-max-size-per-msg
读请求
线程池满:增加readpool.unified.max-thread-count
等待时间高:太多大范围的扫描;负载不平衡;线程池太小;错误的执行计划
block cache命中率低:Block Cache Hit指标;增加storage.block-cache.capacity
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2:
学习过程中参考的其他资料
无