cgroup--内存 限制内存测试

来源:互联网 发布:软件设计和程序员 编辑:程序博客网 时间:2024/05/22 15:59

进入内存目录:

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.out1 2 3 4 5 6 7 8 9 10 11 12 /**********省略部分********/395 396 397 398 Killedroot@ubuntu:~/TestDir/mem# 




原创粉丝点击