linux cgoup内存限制,Ubuntu下限制进程使用内存资源的方法(cgroup)

最近因为项目的需要,跑某个程序的时候需要限制其内存资源的使用,例如限制某个进程只能使用1G的内存资源。

这时候有几种可选的方法,一种就是使用限制内存条件的物理机器,比方你限制4G内存那我就用只有4G内存的机子。但是这种情况不方便,也不灵活,假如限制1G,甚至更小的内存资源呢,上哪去找符合这样条件的物理机器呢?因此从硬件上进行限制就非常笨拙,自然而然就想到用软件的方法进行灵活的限制。

之前搜索发现,linux下的ulimit命令可以对shell进程所用资源进行限制,但是发现其中对于内存资源使用的命令"-m"只对linux内核版本2.x的才有效,之后版本的都已经无效的。(怪不得我说跑的时候咋一点作用都没有,也算是替大家踩坑了...)

后来发现还有一种方法就是使用cgroup来对资源进行限制,推荐!!

下面讲一下Ubuntu上使用cgroup限制进程内存的方法:

1、安装命令apt-get install cgroup-bin

2、进入相应的目录,一般会下如下所示的位置中:cd /sys/fs/cgroup/memory/

3、在该目录下创立自己的组目录mkdir test

会看到在该目录下面会有很多文件,而我们只要要用到其中memory.limit_in_bytes文件

4、限制内存大小,写入memory.limit_in_bytes文件echo 1G > memory.limit_in_bytes

这里1G默认单位是B,也就是你写成1*1024*1024也是一样的

5、具体使用cgexec -g memory:test ./your_bin_file

这里test就是上面第3步,我们在/sys/fs/cgroup/memory/目录下自己创立的组目录,而后之后跟上要执行的命令,即可以对执行的命令进行内存资源限制啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值