Lightning导入数据后,tiflash同步的问题

Version:6.1.0

用Lightning导入csv数据,800多G,32线程

用时1个半小时,提示导入成功

提示导入成功后,tikv是ok的,但tiflash并没有ready,又过了3个小时左右才可用

在这3个小时里,在tiflash_replica表里看到replica同步是100%了,但是其实查tiflash存储会卡住不响应

资源使用情况如下图,可以看到,导入结束后,还有3个小时的低负载状态

我的问题是:

  1. 这是不是正常现象?

  2. 有没有开关能加快这3个小时的过程?

有没有专家可以指点一下?

  1. 现象不正常,这个需要监控以及日志分析

同步慢可能由多种原因引起,你可以按以下步骤进行排查。

  1. 调整调度参数取值。
  1. 调整 TiFlash 侧负载。TiFlash 负载过大会引起同步慢,可通过 Grafana 中的 TiFlash-Summary 面板查看各个指标的负载情况:
  • Applying snapshots Count : TiFlash-summary > raft > Applying snapshots Count
  • Snapshot Predecode Duration : TiFlash-summary > raft > Snapshot Predecode Duration
  • Snapshot Flush Duration : TiFlash-summary > raft > Snapshot Flush Duration
  • Write Stall Duration : TiFlash-summary > Storage Write Stall > Write Stall Duration
  • generate snapshot CPU : TiFlash-Proxy-Details > Thread CPU > Region task worker pre-handle/generate snapshot CPU根据业务优先级,调整负载情况。

感谢帮助!

是一个验证集群,同步过程中TiFlash侧没有任何其他负载,从监控面板看各项指标都贴地皮

store limit目前参数如下,调整到多少比较恰当?

没有确定的值,主要看机器负载,可多次尝试寻找合适的值。

如果机器的性能合理的话,应该不至于这么长事件的延迟。

好的,我调大了试一下。性能方面,确实没有看到任何负载,cpu/内存/IO/网络,都贴地皮

我把store limit 调到了上限200
还是要三四个小时,资源占用依然很低
还有什么可以做的吗?


image

按照这个把tiflash的完整监控发一下。分析一下

截取了其中的一个小时





tiflash-learner.toml

[server]
engine-addr = 外部访问 TiFlash coprocessor 服务的地址

[raftstore]
## 处理 Raft 数据落盘的线程池中线程的数量
apply-pool-size = 4
## 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小。
store-pool-size = 4
## 控制处理 snapshot 的线程数,默认为 2。设为 0 则关闭多线程优化
snap-handle-pool-size = 2
## 控制 raft store 持久化 WAL 的最小间隔。通过适当增大延迟以减少 IOPS 占用,默认为 “4ms”,设为 “0ms” 则关闭该优化。
store-batch-retry-recv-timeout = “4ms”

[security]
## 从 v5.0 引入,控制是否开启日志脱敏
## 若开启该选项,日志中的用户数据会以 ? 代替显示
## 默认值为 false
redact-info-log = false

apply-pool-size,store-pool-size可根据集群配置适当调整
snap-handle-pool-size 应该是默认0,可以调整开启。

不好意思,我没看懂应该干啥,刚接触不久
我应该用tiup cluster edit-config xxx改配置吗?还是要找到这个toml手工改?
这个文件在哪?改了之后需要干什么吗?


刚看了你的监控,处理Snapshot比较慢 所以调整一下参数,这个你可以在测试环境测试一下。

tiup cluster edit-config xx就可以。
另外replica-schedule-limit 适当调整,但是不要超过 region-schedule-limit

region-schedule-limit 和 replica-schedule-limit 我是调过了的,这个大小够了吗:

你说的tiflash_learner的配置,我改大了再试试吧

你好,想确认下 lightning 导入数据的时候是用的什么模式?

改了配置,依然是资源占用很低,和以前没有区别
目前还没跑完,但是目测还是需要三四个小时

tiup cluster edit-config xx :

资源占用:

您好,用的local模式,导入的csv,配置如下:

:thinking: 如果是 local 模式的话,猜测是有些影响。local 模式是将这些键值对以 SST 文件的形式上传到各个 TiKV 节点,然后由 TiKV 将这些 SST 文件 Ingest 到集群中。而 tiflash 同步 tikv 的数据是 region learner 的形式进行同步的。

嗯,现在我的疑惑就是,这个同步的速度太慢了。
导入一个半小时,同步快4个小时。
就是想问问有没有办法加快速度。

可以参考下这个 TiFlash 常见问题排查