【TiDB 4.0 PCTA 学习笔记】-3.7.9 Peformance Tuning - troubleshooting examples(性能调优 - 故障排查实战)@3班+张近博

课程名称:课程版本(301)+ 3.7.9 Peformance Tuning - troubleshooting examples(性能调优 - 故障排查实战)

学习时长:30分钟

课程收获:学习了解常见的性能瓶颈调优方法,并结合案例加深了认识

课程内容:

  1. CPU瓶颈
  1. CPU使用率是否很高
    A) 应用端的CPU是否很高
    B) TiDB端的CPU是否很高
    C) TiKV端的相关模块是否导致CPU使用率很高
  2. CPU的负载是否很高
    A) 应用端的进程或者线程是否很多导致,占用了CPU资源
    B) TiKV的iowait是否很高
  1. IO瓶颈
  1. IOPS限制
    A) 1TB ebs gp 2的容量有3000 IOPS的限制
    B) 读请求会消耗较多的IOPS,可以适当地调大block-cache size
  2. IO的带宽限制
    A) 一个ebs gp 2有250MB/S的限制
    B) TikV压缩流将读取SST文件和写SST文件, 这将消耗大量的lO带宽,我们可以为压缩设置一个速率限制: [rocksdb] rate-bytes-per-sec =“100MB”
    C) 范围查询也会消耗较多的IO带宽
  1. 网络瓶颈
  1. 应用服务器和TiDB服务器之间的网络
  2. TiKv服务器和TiDB服务器之间的网络
  1. 关于瓶颈的实际例子
  1. TiDB的NUMA问题:
    现象:TiDB的CPU使用率不高,但是PD TSO Wait Duration和SQL Compile duration的值很高,接近100ms
    分析:9-1
    根本原因:用户告诉我们,TiDB部署在16 核VM上,这些16核跨2 NUMA节点,所以条件NUMA分布就解决了问题。
  2. TiDB的CPU限制
    现象:
    9-2
    分析:
    延迟随着qps的增加而增加,这意味着某些组件可能会遇到瓶颈 ,TiKV CPU使用率和LO使用率远离瓶颈,TiKV表示其RPC速度快,因此瓶颈不在TikV方面, PD表示其延迟较低,但TiDB表示pd tso等待时间较高,瓶颈可能位于tidb侧,或者网络延迟较高。但是网络延迟较低,瓶颈可能在TiDB端。TiDB所在实例的CPU使用率约为20%以上,远离瓶颈。
    根本原因:TiDB因为设置max-proc参数为8,导致了限制了CPU的使用,最终将此值设置为0,解决了问题
  3. TiKV的CPU到达瓶颈
    现象: CPU的usage很高
    分析:大部分CPU都是消耗在Coprocessor这个模块里面

    根本原因:看执行计划发生了全表扫描,没有建立对应的索引,所以添加索引后问题解决
  4. TiKV的磁盘瓶颈
    现象:写延迟比较高,TiDB/TiKV/PD的cpu使用率较低
    分析:

    我们还可以看到“写失速”事件,这是一个重要的信号,表明磁盘可能不堪重负。 根本原因:磁盘写入速度无法满足业务,扩容可以解决此问题

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!