CentOS上使用cgroup限制进程使用内存

安装cgroup

要使用cgroup首先需要系统支持,需要安装两个rpm包

yum install libcgroup libcgroup-tools

创建限制内存的cgroup组

cgroup组需要在/sys/fs/cgroup/memory目录下创建,我们创建一个限制进程内存大小为10M的cgroup组,这个组中内存使用不能够超过10M

直接在/sys/fs/cgroup/memory/目录下新建一个目录

mkdir memory10M

目录创建好后进入目录发现已经自动生成了一系列的配置文件

其中memory.limit_in_bytes文件中设置了这个cgroup组中能够使用的内存大小,单位是byte。

写入10M大小的内存限制

echo $((10*1024*1024)) > memory.limit_in_bytes

我们创建一个测试程序t.py

复制代码
x=[]
for i in range(100000000):
    if i%100==0:
        print(i)
    x.append("a"*10000)

在我们上面创建好的cgroup中执行这个python程序

cgexec -g memory:memory10M python t.py

当内存超出cgroup的限制之后,进程就会由于oom被kill掉

cgexec命令来源于libcgroup-tools安装包

如果需要删除cgroup,直接移除对应的cgroup文件夹即可(不能直接删除目录,删除会报错)

rmdir memory10M

memory.memsw.limit_in_bytes:内存+swap空间使用的总量限制

memory.move_charge_at_immigrate:当进程移动到其他cgroup中的时候,它所占用的内存是否也会被移动过去

memory.memsw.limit_in_bytes:限制swap+memory的大小

相关推荐
帕里亚10 分钟前
ubuntu18.04 APT升级 glibc2.28 (Jetson)
linux·运维·windows
好运的阿财20 分钟前
“锟斤拷”问题——程序中用powershell执行命令出现中文乱码的解决办法
linux·前端·人工智能·机器学习·架构·编辑器·vim
cyber_两只龙宝21 分钟前
【Nginx】Nginx实现FastCGI详解
linux·运维·nginx·云原生·php·memcached·fastcgi
砖头拍死你22 分钟前
Powershell使用vim修改文件保存后文件名自动全变小写
linux·编辑器·vim
wang090729 分钟前
linux的中断分析(硬中断和软中断)
linux·运维·服务器
赵优秀一一41 分钟前
Python 工程化基础1:环境(conda)、pip、requirements.txt
linux·开发语言·python
风酥糖1 小时前
chroot的Linux服务配置-当云服务器真正用起来
linux·运维·服务器
木鱼布1 小时前
安装arm虚机启动失败
linux·运维·arm开发
Deitymoon1 小时前
linux——网络基础
linux·网络
独小乐1 小时前
013.定时器之系统Tick实现|千篇笔记实现嵌入式全栈/裸机篇
linux·笔记·单片机·嵌入式硬件·arm