TIKV内存使用持续增长

【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.5.1
【遇到的问题:问题现象及影响】 TIKV内存一直持续增长

部署在虚拟机v6.5.1 内存限制了storage.block-cache.capacity 为分配给虚拟机内存的45%(具体值75G),但是内存使用一直持续增长,一直到OOM,然后重新开始增长再OOM

官方文档有 https://docs.pingcap.com/zh/tidb/stable/tune-tikv-memory-performance#tikv-内存参数性能调优


红框这句怎么理解呢? 如果有大查询,不是占用的rocksdb.defaultcf.block-cache-size 设置的空间吗?是占用了 rocksdb.defaultcf.block-cache-size 这个另外的内存空间?

字面意思,缓存查询数据到内存中。在dashboard中topsql查看下是什么sql使用那么多资源,优化下sql或者限制下sql内存使用。

有 storage.block-cache.capacity =75G 限制时,那使用到75G 左右应该就开始 清除一些缓存吧?为什么会突破限制呢?

你虚拟机内存一共有多少G,另外上面部署了有其他的组件吗?还是只有一个tikv?

虚拟内存170G,只部署了TIKV

单实例tikv 还是 多实例

那不应该啊,storage.block-cache.capacity参数设置就是限制tidb的block-cache只能使用75G了,其他的包括你红框复制的内容最多使用内存也就是block-cache的2/3了,TIDB之所以让你设置storage.block-cache.capacity为总服务器内存的45%,就是限制tikv总内存占用不能超过系统总内存的75%,需要剩余25%给系统使用。
你可以截张主机内存使用率的图吗?看看tikv进行到底占了多少

256G内存4个tikv实例的话,storage.block-cache.capacity建议分配多少

我理解这个意思,应该的排序,分组要用临时内存,这时候要用到系统内存

256/4*45%=28G,如果是多实例的tikv的话,还是按我上面说的,先留25%给系统,剩下75%分给4个实例,其中每份的3/5就是storage.block-cache.capacity参数大小

明白了,谢谢。
256x0.75/4/5x3=28.8

单实例