cgroup对tikv进程限定内存容量无法生效

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【概述】:场景 + 问题概述
通过cgroup限定TIKV进程使用的内存总量,内存限制不起作用

【背景】:做过哪些操作
服务器内存为256G,限定TIKV进程使用32G,配置了cpuset.cpus 和 cpuset.mems 、cgroups.procs 文件,并把参数memory.oom_disable设为1
【现象】:业务和数据库现象
sysbench压测发现内存限制没起作用
【问题】:当前遇到的问题
sysbench压测发现内存限制没起作用
【业务影响】:

【TiDB 版本】:
v4.0.12
【附件】:

1 个赞
  1. https://github.com/pingcap/tiup/blob/v1.4.1/embed/templates/examples/topology.example.yaml
    参考模板,配置 memory_limit 试试。
  2. 确认 swap 是否关闭

memory_limit这个参数看上去没能生效:
配置文件里写了64G,但是每个tikv和tidb节点

这个是操作系统级别的参数,不在tidb和tikv的配置文件中,可以检查/etc/systemd/system 目录下对应的 tidb和 tikv 的service 文件。

1 个赞

这2个文件里都是32G,是不是可以手工调整为64G即可?

请保持参数值一致。或者就别使用tiup的参数。自己添加修改。

在进行TPCH测试的时候,发现同样的SQL语句在传统环境下执行,tikv更容器发生OOM,64G内存经常耗尽。而容器环境就相对比较稳定,tikv内存使用在16G左右。
传统环境资源规格如下:TiDB/TiKV:16C、64G,PD:8C、32G
容器环境资源规格如下:TiDB/TiKV:8C、32G,PD:4C、16G
CPU是通过Cgroup来进行限定的,内存是通过service 文件来进行限定!
传统环境内存:
%E4%BC%A0%E7%BB%9F%E7%8E%AF%E5%A2%83CPU|690x388 !
容器环境CPU:
%E4%BC%A0%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%86%85%E5%AD%98|690x388 !
容器环境内存:
%E5%AE%B9%E5%99%A8%E7%8E%AF%E5%A2%83CPU|690x388 !
传统环境CPU:
%E5%AE%B9%E5%99%A8%E7%8E%AF%E5%A2%83%E5%86%85%E5%AD%98|690x387

这个和之前的问题应该没有关系,辛苦开新贴分析吧,多谢。