1.配置优化
1.1系统调优
1.1.1内存
关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/degrag
虚拟内存参数
dirty_ratio
百分比值,固态硬盘降低其值,可提升内存回收时效率
dirty_background_ratio
百分比值,固态硬盘降低其值可以提供内存回收效率
1.1.2处理器
-
动态节能
cpufreq 是一个动态调整 CPU 频率的模块,可支持五种模式。为保证服务性能应选用 performance 模式,将 CPU 频率固定工作在其支持的最高运行频率上,不进行动态调节,操作命令为:
cpupower frequency-set --governor performance
-
中断亲和性
- 自动平衡:可通过
irqbalance
服务实现。 - 手动平衡:
- 确定需要平衡中断的设备,从 CentOS 7.5 开始,系统会自动为某些设备及其驱动程序配置最佳的中断关联性。不能再手动配置其亲和性。目前已知的有使用
be2iscsi
驱动的设备,以及 NVMe 设置; - 对于其他设备,可查询其芯片手册,是否支持分发中断。
- 若不支持,则该设备的所有中断会路由到同一个 CPU 上,无法对其进行修改。
- 若支持,则计算
smp_affinity
掩码并设置对应的配置文件
- 确定需要平衡中断的设备,从 CentOS 7.5 开始,系统会自动为某些设备及其驱动程序配置最佳的中断关联性。不能再手动配置其亲和性。目前已知的有使用
- 自动平衡:可通过
1.1.3存储及文件系统
- IO调度器 (I/O 调度程序确定 I/O 操作何时在存储设备上运行以及持续多长时间。也称为 I/O 升降机。对于 SSD 设备,宜设置为
noop
)
echo noop > /sys/block/${SSD_DEV_NAME}/queue/scheduler
- 块大小
- 挂在参数
1.2软件调优
1.2.1配置
- TiDB内存调优
- TiKV线程调优
- TiKV内存调优
- TiKV Follower Read
- TiFlash调优
1.2.2下推计算结果缓存
- 使用Explan Analyze
- 查看Grafana监控面板
2.SQL性能调优
2.1理解TiDB执行计划
- 通过explain查看执行计划
- 索引查询优化
- 子查询优化
- 分区查询优化
2.2SQL优化流程
- 逻辑优化
- 列裁剪
- 关联查询
- 分区裁剪
- 谓词下推
- 物理优化
- 索引优化
- 统计信息简介
- distinct优化
2.3控制执行计划
- Optimizer Hints
- 执行计划管理
- 优化规则集表达式下推的黑名单