【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
节点配置:16核64G
问题:tikv节点的内存会超过所设置的值,而且一直会不断增高,直到无法提供服务,如何通过参数优化呢
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】
数据库内存配置截图
服务器 服务内存截图
storage.block-cache.capacity的值设置成目标内存的45%,tikv总内存不会超过这个值的2.5倍
1 个赞
大佬,目前的 storage.block-cache.capacity 就是 总内存的45%,但是tikv的内存还是会一直递增,直到 98% 99% 不可用,重启恢复后 又会慢慢递增
有猫万事足
5
https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改集群配置
通过set config,把block-cache这个值往下调,oom说明29g还是大了。
改了不会立刻生效,但是半小时内,肯定能看到下去了,没下去说明还是大了,继续往小了改。
我在8G内存的机器上都能通过这个控制住不发生oom。64g肯定能控制住的。
在线改的合适了,记得tiup cluster edit-config 改一下配置文件。
2 个赞
可以按照猫哥说的改一下,观察 tikv 内存使用情况;目前 tikv 内存占用在这几个方面,可以按实际情况来排查一下
2 个赞
感谢各位的回复,目前先调整了storage.block-cache.capacity 大小,从27G 调整为了25G,先观察一下,有情况再向大家请教
1 个赞
nobody
(不定时出现)
8
如果你的 tikv 版本高于等于 7.5.0 ,可以考虑使用 dashboard 分析下 tikv 对应内存的火焰图。
ps: 正常情况下,如果没有业务堆积,tikv 实例内存不会大于 block cache 很多。
zhanggame1
(Ti D Ber G I13ecx U)
10
storage.block-cache.capacity 你设置太大了,看截图混合部署了,64G内存你设置15G吧,最多别超过20G,不混合部署这个设置没问题
1 个赞
zhanggame1
(Ti D Ber G I13ecx U)
11
还是太高,调到20 ,另外tidb-server的内存限制你设置了吗
TIDB版本是 8.1.0,是混合部署,确实改成了 20G还是有问题 ,现在改成15G了,再观察看下,感谢