【TiDB 4.0 PCTA 学习笔记】- 3.7.6 TiDB Server 优化@2班+欧阳

课程名称:3.7.6 TiDB Server 优化

学习时长:60min

课程收获:全面了解 了TiDB 性能优化涉及到的可以调节的配置和参数

课程内容:

  • 操作系统参数
    • CPU
      • 频率调整
        • cpufreq是可动态调整CPU频率的模块,有五种模式,应使用performance模式
        • cpupower frequency-set --governor performance
      • Numa(Non-Uniform Memory Access)绑定
        • 为避免跨NUMA访问内存,将CPU核和thread/process绑定
        • numactl
    • Memory
      • THP(Transparent Huge Page,透明大页)
        • 对数据库来说,不推荐使用THP,因为数据库经常会进行稀疏内存访问,而不是连续内存访问
        • 如果高阶内存碎片严重,分配THP时会有高延迟
        • 如果THP开启了直接规整,CPU使用率激增
      • 虚拟内存参数
        • dirty_ratio,默认20%,通常不需要调节,对于高性能SSD,降低该参数可以改善内存回收效率
        • dirty_background_ratio,默认10%,通常不需要调节,对于高性能SSD,降低该参数有助于改善内存回收效率
    • Disk
      • I/O Scheduler
        • 决定在存储设备上运行操作时间及时长,也叫I/O elevator
        • 高性能SSD,推荐设置为noop
          • echo noop > /sys/block/${SSD_DEV_NAME}/queue/scheduler
      • 挂载参数
        • noatime选项如果打开,读取文件时会禁用元数据更新
        • nodiratime选项如果打开,读取目录时会禁用元数据更新
  • TiDB 系统变量
    • 通过SQL语句修改,大部分是global
    • concurrency
      • tidb_distsql_scan_concurrency
        • 默认15
        • 影响大多数语句
        • 控制TableScan或IndexScan算子的并发
      • tidb_index_lookup_concurrency
        • 控制IndexLookUp算子的并发
      • tidb_build_stats_concurrency
        • 控制analyze语句的并发
      • tidb_hash_join_concurrency
        • 控制HashJoin算子并发
      • tidb_index_lookup_join_concurrency
        • 控制IndexLookUpJoin算子并发
      • tidb_ddl_worker_cnt
        • 控制DDL新建索引并发
    • batch size
      • TiDB以chunk为单位处理数据,TP请求可设置小一些,AP请求可设置大一些
      • tidb_init_chunk_size
      • tidb_max_chunk_size
      • tidb_index_join_batch_size
    • limit
      • tidb_store_limit
        • 控制发送到TiKV节点的并发请求数
      • tidb_retry_limit
        • 控制乐观事务的最大重试次数
    • backoff
      • 可重试的错误,重试前的等待时间,设置大会增加延迟,设置小,造成无谓的重试
      • tidb_backoff_weight
        • 重试等待时间的权重系数
        • 默认值2
          • 网络差情况下,适当增加,缓解网络超时
          • 若想尽快的收到报错信息,适当减少
      • tidb_backoff_lock_fast
        • 读请求遇到锁时等待时间
  • TiDB配置文件参数
    • Performance
      • max-proc:TiDB使用CPU核数
      • token-limit:可以并发执行请求的会话数
      • force-priority:设置语句的优先级
        • 常用于对单独的TiDB节点设置低优先级来运行AP请求
      • commiter-concurrency:一个事务中允许的两阶段提交请求的最大并发数
        • 针对大事务进行并发控制
    • TiKV Client
      • grpc-connection-count:TiDB与每个TiKV建立连接的最大数量
    • Prepared Plan Cache
      • 减少执行计划的开销
      • enabled:是否开启PREPARE语句的Plan Cache
      • capacity:缓存语句的数量

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

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

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

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。