TIKV OOM

【 TiDB 使用环境】生产环境 /测试/ Poc
系统版本:Ubuntu 20.04
TIDB版本: v.6.5.1 v6.5.0
【复现路径】
在进行e2e的测试中,当压力平稳后内存使用仍在增长,如进行长时间e2e测试 则会触发OOM
【遇到的问题:问题现象及影响】


触发OOM重启
【资源配置】
主机资源配置:
CPU:16核
内存:128G
机械磁盘:20T

监控截图


Heap pprof
000001.heap (55.9 KB)

metricstools tidb-test-TiKV-Details_2023-03-28T08_59_55.204Z.json (14.0 MB)

@h5n1

情况说明:
三台主机: 16C 128G 20T*3
三个TIDB 三个PD 6个TIKV(有多块盘) 主机资源也够
注: 和业务混部在一起,但确认不是业务和别的基础组件占用触发OOM导致tikv 被误Kill

是不是又发了一遍 :thinking:

混布的话,要注意 tikv 的内存配置
不然 系统内存不足,linux 会把 tikv 当僵尸进程杀掉的

是的 上一个沉了 现在业务线上 定点重启遭不住了

这个内存配置有一个推荐值吗? 我主机128G内存 起两个TIKV应该还算充足吧 其他程序不咋占内存

混布应该在测试环境压一压

参考下这几篇:
https://docs.pingcap.com/zh/tidb/stable/three-nodes-hybrid-deployment
https://docs.pingcap.com/zh/tidb/stable/hybrid-deployment-topology


https://docs.pingcap.com/zh/tidb/stable/tune-tikv-memory-performance#tikv-机器配置推荐

你还是学学基础理论再来一个发帖

oom 就找最大内存的kill 谁内存最大?tikv限制80%用量 你其他业务多少内存?

SHOW config WHERE TYPE=‘tikv’ AND NAME LIKE ‘%storage.block-cache.capacity%’;
看一下这个参数,如果单个tikv部署在1个服务器上,设置为服务器内存的45%即可,如果有两个tikv部署在1个服务器上,设置为服务器内存的22.5%即可,另外如果两个tikv部署在一个服务器上,可以通过指定numa_node的方式用numa绑定单个tikv使用一个numa,防止互相影响。

我查看一下 谢谢

好的 谢谢 我看一下

?? 不是很懂你的意思 我业务内存全部加起来不到20G

内存会积压使用,如果是混布,最好用 cgroup 进行隔离…

cgroup 隔离的话 可能运维这边比较复杂一点

我们本来是磁盘写入慢 但是不能加机器数量 所以加盘混部 两个TIKV 磁盘写入延迟很大 SAS盘


默认cache

tikv 的cache大小默认是内存的45%左右,手工设置下大小,先调32G跑跑