cgroup--内存 限制内存测试

进入内存目录:

root@ubuntu:/sys/fs/cgroup# cd memory/
root@ubuntu:/sys/fs/cgroup/memory#


设置内存上限:

root@ubuntu:/sys/fs/cgroup/memory/test# echo 400M > memory.limit_in_bytes 
root@ubuntu:/sys/fs/cgroup/memory/test# echo 400M > memory.memsw.limit_in_bytes

用如下代码测验:

#include <stdio.h>
#include <stdlib.h>

#define MEGABYTE (1024*1024)

int main(int argc, char *argv[])
{
	void *myblock = NULL;
      	int count = 0;
	int i;	
      	while (1)
      	{
              	myblock = (void *) malloc(MEGABYTE);
              	if (!myblock) 
	       		break;
	      	for(i = 0;i < MEGABYTE / 4;i ++)	/// 由于操作系统的某些机制,申请的内存只有在用到的时候才
		{			/// 真正申请内存,所以这里需要写内存操作。
			((unsigned int*)myblock)[i]	= i;
		}
              	count++;
 			printf("%d \n",count);
      	}
      	exit(0);
}

启动测试命令,当申请到最大内存的时候进程被killed,而不是通过malloc函数返回NULL的形式被终止:

root@ubuntu:~/TestDir/mem# cgexec -g memory:test ./a.out
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
/**********省略部分********/
395 
396 
397 
398 
Killed
root@ubuntu:~/TestDir/mem# 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值