cgroup-メモリ制限メモリテスト
1161 ワード
メモリディレクトリへ:
メモリ上限を設定するには:
次のコードでテストします.
テストコマンドを起動し、malloc関数でNULLを返すのではなく、最大メモリを申請したときにプロセスがkilledされます.
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
",count);
}
exit(0);
}
テストコマンドを起動し、malloc関数でNULLを返すのではなく、最大メモリを申請したときにプロセスがkilledされます.
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#