文档首页/ 云容器引擎 CCE/ 常见问题/ 节点/ 操作系统问题说明/ 低版本内核的CentOS节点反复创删应用时偶现cgroup kmem泄露问题
更新时间:2024-06-21 GMT+08:00
分享

低版本内核的CentOS节点反复创删应用时偶现cgroup kmem泄露问题

故障现象

CentOS 7.6节点内核低于3.10.0-1062.12.1.el7.x86_64的场景下(主要为1.17.9版本集群),反复创建应用时出现cgroup kmem泄露,导致节点内存有空余,但是无法创建新的Pod,并提示报错Cannot allocate memory。

问题根因

在反复创建应用时会创建的临时memory cgroup,但在应用删除时,内核已经删除了 cgroup (/sys/fs/cgroup/memory下对应的cgroup目录已经删除), 但在内核中没有释放cssid,导致内核认为的cgroup的数量实际数量不一致,残留的cgroup达到节点上限后,导致该节点无法继续新建Pod。

解决方法

  • 该问题可以通过可以在内核层全局使用 “cgroup.memory=nokmem” 参数关闭kmem使用防止发生泄漏。
  • 1.17集群版本已停止维护,修复该问题建议升级至1.19及以上集群版本,并通过节点重置为最新版本的操作系统修复该问题,确保内核版本高于3.10.0-1062.12.1.el7.x86_64。

相关文档