TiDB-v4.0.x支持OLAP场景的一些实践经验

TiDB-v4.0.x支持OLAP场景的一些实践经验

由于个人工作经验的局限性,本文将仅分享我个人最近两个月在TiDB支持OLAP场景(BI系统)遇到的一些问题及调优方法。不足之处请大家批评、补充。

这类业务场景有一下特点:

  • 数据量大,主要为 batch insertselect 业务
  • 很多类似 select * 操作
  • 较多join操作
  • 每天定时做 drop partition

Case1: tidb节点系统盘使用量超过80%报警

现象: tidb节点 系统盘 使用量超过80%报警

原因:

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#tmp-storage-path

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#mem-quota-query

调优方案:

调整 tmp-storage-path 或者 tmp-storage-quota

Case2: 单条SQL超过内存使用限制被cancel

原因:

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#mem-quota-query

调优方案:

调大 mem-quota-query

Case3: 海量empty-region

现象:监控PD->RegionHealth->empty-region-count较大

原因:频繁drop-partition造成

调优方案:(这里注意: 升级到4.0.x的集群region-merge默认未打开)

https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices#region-merge-速度慢

https://docs.pingcap.com/zh/tidb/stable/massive-regions-best-practices#方法五开启-region-merge

Case4: TiKV-CPU & TiKV-ThreadCPU->RaftStoreCPU 居高不下

现象: TiKV-CPU & TiKV-ThreadCPU->RaftStoreCPU 居高不下

原因: region-count过大,集群负载高

调优方案:

https://docs.pingcap.com/zh/tidb/stable/massive-regions-best-practices#海量-region-集群调优最佳实践

Case5: Transection too large

现象: insert into select fromdelete from 等操作报错 Transection too large

原因:

调优方案:

  1. 针对事务过大,可以考虑拆分事务

  2. https://book.tidb.io/session4/chapter6/transaction-statement-count-limit.html#465-如何绕开大事务的限制

  3. https://book.tidb.io/session1/chapter6/big-txn-in-4.0.html#63-40-的大事务支持

1赞

感谢分享:+1: