TiDB中文技术文档
驱动表构建查询计划。 SELECT /*+ TIDB_HJ(t1, t2) */ * from t1,t2 where t1.id = t2.id 提示优化器使用 Hash Join 算法,这个算法多线程并发执行,执行速度较快,但会消耗较多内存。 这个是一个 TiDB 的隐藏列,代表隐式的 ROW ID 的列名,只存在于 PK 非整数或没有 PK 的表上,可以进行增 减改查的操作。 SELECT 语句示例: 这样的工具迁移数据会比较慢。我们尝试了 mydumper/myloader 套件,能够多线程导出和导入数据。在使用过程中,mydumper 问题不大,但是 myloader 由于缺乏出错重试、断 点续传这样的功能,使用起来很不方便。所以我们开发了 loader,能够读取 mydumper 的输出数据文件,通过 MySQL protocol 向 TiDB/MySQL 中导入数据。 多线程导入 支持表级别的并发导入,分散写入热点 支持对单个大表并发导入,分散写入热点 Proxy Protocol 添加大量监控项, 优化日志 支持配置文件的合法性检测 支持 HTTP API 获取 TiDB 参数信息 使用 Batch 方式 Resolve Lock,提升垃圾回收速度 支持多线程垃圾回收 支持 TLS 兼容性 TiDB 2.0 Release Notes TiDB 2.0 - 396 - 本文档使用 书栈(BookStack.CN) 构建 支持更多 MySQL 语法 支持配置文件修改0 码力 | 444 页 | 4.89 MB | 5 月前3TiDB v5.2 中文手册
Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 – 优化基础代码提升 MPP 性能 – 支持将 STRING 类型转换为 DOUBLE 类型 – 通过多线程优化右外连接中的非连接数据 – 支持在 MPP 查询中自动清理过期的 Region 信息 • Tools – TiCDC * 为 kv client 增量扫添加并发限制 #1899 * 始终在 readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 4.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family0 码力 | 2259 页 | 48.16 MB | 1 年前3TiDB v5.1 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 4.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family TiKV-details -> Thread CPU/raft store �→ CPU 和 Async apply CPU 超过 80%),可以选择扩容 TiKV(v2.x 版本)实例或者升级到多线程模型的 v3.x 版本。 8.9.1.5 CPU Load 升高 现象: CPU 资源使用到达瓶颈 可能的原因: • 热点问题。 • 整体负载高,排查 TiDB 的 slow query0 码力 | 2189 页 | 47.96 MB | 1 年前3TiDB v5.3 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 4.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family TiKV-details -> Thread CPU/raft store �→ CPU 和 Async apply CPU 超过 80%),可以选择扩容 TiKV(v2.x 版本)实例或者升级到多线程模型的 v3.x 版本。 8.10.1.5 CPU Load 升高 现象: CPU 资源使用到达瓶颈 可能的原因: • 热点问题。 • 整体负载高,排查 TiDB 的 slow query0 码力 | 2374 页 | 49.52 MB | 1 年前3TiDB v5.4 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 4.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family TiKV-details -> Thread CPU/raft store �→ CPU 和 Async apply CPU 超过 80%),可以选择扩容 TiKV(v2.x 版本)实例或者升级到多线程模型的 v3.x 版本。 8.11.1.5 CPU Load 升高 现象: CPU 资源使用到达瓶颈 可能的原因: • 热点问题。 • 整体负载高,排查 TiDB 的 slow query0 码力 | 2852 页 | 52.59 MB | 1 年前3TiDB v6.1 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 5.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 一些算子和函数不支持下推到存储层,导致出现巨大的中间结果集累积。此时可能需要改写业务 SQL, 或使用 hint 进行调优,来使用可下推的函数或算子。 • 执行计划中存在算子 HashAgg。HashAgg 是多线程并发执行,虽然执行速度较快,但会消耗较多内存。可 以尝试使用 STREAM_AGG() 替代。 • 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family0 码力 | 3572 页 | 84.36 MB | 1 年前3TiDB v7.1 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 5.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family 一些算子和函数不支持下推到存储层,导致出现巨大的中间结果集累积。此时可能需要改写业务 SQL, 或使用 hint 进行调优,来使用可下推的函数或算子。 • 执行计划中存在算子 HashAgg。HashAgg 是多线程并发执行,虽然执行速度较快,但会消耗较多内存。可 以尝试使用 STREAM_AGG() 替代。 • 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变0 码力 | 4369 页 | 98.92 MB | 1 年前3TiDB v6.5 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 5.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family 一些算子和函数不支持下推到存储层,导致出现巨大的中间结果集累积。此时可能需要改写业务 SQL, 或使用 hint 进行调优,来使用可下推的函数或算子。 860 • 执行计划中存在算子 HashAgg。HashAgg 是多线程并发执行,虽然执行速度较快,但会消耗较多内存。可 以尝试使用 STREAM_AGG() 替代。 • 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变0 码力 | 4049 页 | 94.00 MB | 1 年前3TiDB v7.6 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 5.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,见案例 case-815。 – pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对 应 Column Family 一些算子和函数不支持下推到存储层,导致出现巨大的中间结果集累积。此时可能需要改写业务 SQL, 或使用 hint 进行调优,来使用可下推的函数或算子。 • 执行计划中存在算子 HashAgg。HashAgg 是多线程并发执行,虽然执行速度较快,但会消耗较多内存。可 以尝试使用 STREAM_AGG() 替代。 • 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变0 码力 | 4666 页 | 101.24 MB | 1 年前3TiDB v8.0 中文手册
readpool、coprocessor 和 gRPC 的最大并发度限制是可以通过 TiKV 的配置文件进行调 整的。 通过 Grafana 的 TiKV Thread CPU 监控面板可以观察到其实际使用率。如出现多线程模块瓶颈,可以通过增加该 模块并发度进行调整。 5.6.1.3.3 在高并发压力下,TiKV 也未达到 CPU 使用瓶颈,为什么 TiDB 的 CPU 利用率依然很低? 在某些高端设备上,使用的是 一些算子和函数不支持下推到存储层,导致出现巨大的中间结果集累积。此时可能需要改写业务 SQL, 或使用 hint 进行调优,来使用可下推的函数或算子。 • 执行计划中存在算子 HashAgg。HashAgg 是多线程并发执行,虽然执行速度较快,但会消耗较多内存。可 以尝试使用 STREAM_AGG() 替代。 • 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变 TiKV-details -> Thread CPU/raft store �→ CPU 和 Async apply CPU 超过 80%),可以选择扩容 TiKV(v2.x 版本)实例或者升级到多线程模型的 v3.x 版本。 10.2.4.1.5 CPU Load 升高 现象: CPU 资源使用到达瓶颈 可能的原因: • 热点问题。 • 整体负载高,排查 TiDB 的 slow query0 码力 | 4805 页 | 101.28 MB | 1 年前3
共 15 条
- 1
- 2