TIKV占用内存过高,如何限制内存

【 TiDB 使用环境】测试
【 TiDB 版本】6.5
【复现路径】TIKV占用内存过高
【遇到的问题:问题现象及影响】
我们公司虚出一台服务器,开始是32G内存,运行一段时间后内存被TIKV占满,然后导致服务器卡死,监控都监测不到内容了,如图TIKV Memory Usage可以看到折线图出现的中断,之后增加内存到50G但是发现是水涨船高,依旧被占满,然后我用tiup cluster edit-config 的方式修改了memory-usage-high-water: 0.3,storage.block-cache.capacity: 2G如图,然后tiup cluster reload,但是过段时间后内存又要被占满,请问如何限制住tikv的内存。
image

image

你这个是多组件部署在一台机器了吧,单节点部署还要考虑tidb server,pd,监控等,要做合理规划分配

资源有限,我们这个不过是给开发过程中用的,不会出现高并发之类的,难道咱们tidb就不能在一台机器上有什么内存资源的限制的相关配置吗?

出现oom的情况,把grpc-memory-pool-quota这个参数调整下吧


尽量按照官方要求部署

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

看看这个文章
tidb的底层是rocksdb,有4个cf,每个cf都有memtable(等于write-buffer-size*max-write-buffer-number),还有blockcache(对应[storage.block-cache]),这些都调整的小点。内存就小了。

1 个赞

tikv 配置文件参数 storage.block-cache.capacity 参考下
TiKV 配置文件描述 | PingCAP Docs

storage.block-cache.capacity: 15G
下图是配置位置
image