tiflash 有没有参数可以限制内存最大使用 防止oom 还有同步的速度,防止同步占用资源过多导致查询完全无法查询

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.2.1
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
请问

  1. tiflash 有没有参数可以限制内存最大使用 防止oom tiflash 反复重启 启动就快速消耗内存,不是查询导致,怀疑是把数据大量加载到内存,很快就oom了 下面参数都调整了 还是会一直涨到oom

数据块元信息的内存 cache 大小限制,通常不需要修改

mark_cache_size = 5368709120

数据块 min-max 索引的内存 cache 大小限制,通常不需要修改

minmax_index_cache_size = 5368709120

DeltaIndex 内存 cache 大小限制,默认为 0,代表没有限制

delta_index_cache_size = 0

# Maximum memory usage for processing a single query. Zero means unlimited.
profiles.default.max_memory_usage: 0
# Maximum memory usage for processing all concurrently running queries on the server. Zero means unlimited.
profiles.default.max_memory_usage_for_all_queries: 0
  1. 还有限制下tiflash添加新表同步的速度,防止同步占用资源过多
    导致业务查询完全无法查询

【附件:截图/日志/监控】

新增 TiFlash 副本时,各个 TiKV 实例将进行全表数据扫描,并将扫描得到的数据快照发送给 TiFlash 从而形成副本。默认情况下,为了降低对 TiKV 及 TiFlash 线上业务的影响,TiFlash 新增副本速度较慢、占用资源较少。
一般都会调整参数进行加快,你要放慢也可以参照这个,参数改小即可
https://docs.pingcap.com/zh/tidb/stable/create-tiflash-replicas#加快-tiflash-副本同步速度

这个调整了 还 oom 就升级吧 :thinking:

Tiflash中有参数可以限制内存的最大使用,防止反复重启导致的OOM错误。 以下是一些相关参数:

profiles.default.max_memory_usage:

profiles.default.max_memory_usage_for_all_queries:

delta_index_cache_size:

mark_cache_size:
minmax_index_cache_size:

除了这些参数之外,Tiflash 添加新表同步的速度也有限制,防止同步占用过多资源,影响查询性能。 可以使用 max_delta_schema_sync_threads 参数调整此限制。 默认情况下,此参数设置为 10,这对大多数系统来说应该足够了。 如果需要提高表同步的速度,可以增加这个值,但要注意这样做可能会增加资源占用,影响查询性能。

我查询了下这个参数 估计我这个版本没有这些调整参数,现在感觉是tiflash 预热需要读大量的数据到内存,结果16G 不够 oom了,因为他是有进程但是端口没监听起来 就oom了

查询了下 估计我这个版本还没有这个参数,基本大表一添加到tiflash 同步 马上cpu 4核就全满了,io ssd 也100% 每秒100MB 这个对查询就产生影响了,同步占一半资源,后台慢慢同步就更好了。

5.2.1的话,只有tikv参数可以在线修改,其他使用配置文件修改,
tikv:
server.snap-max-write-bytes-per-sec: 300MiB # 默认 100MiB
tiflash-learner:
raftstore.snap-handle-pool-size: 10 # 默认 2,可以调整为机器总 CPU 数 × 0.6 或更高
raftstore.apply-low-priority-pool-size: 10 # 默认 1,可以调整为机器总 CPU 数 × 0.6 或更高
server.snap-max-write-bytes-per-sec: 300MiB # 默认 100MiB

明白,那请问修改之前有没有地方或者方法可以在修改配置文件之前先查到这个值呢,就是修改之前的值保留下,如果有问题还能修改回去,或者修改之前看看当前的之前是否合理,修改后看看修改是否生效

tiup cluster edit-config tidb集群名 看一下原来配置的有这些参数没有,没有的话就是默认值,有的话输出到一个文档中备份下即可

好的 明白了 tks