博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cgroup使用--memory资源限制
阅读量:2429 次
发布时间:2019-05-10

本文共 1868 字,大约阅读时间需要 6 分钟。

同样,cgroup也可以对memory资源进行限制。下面以一个例子来验证cgroup对内存限制的使用。

1.编写程序,循环分配600M内存。

#include
#include
#include
#define CHUNK_SIZE 1024 * 1024 * 100int main(){
char *p; int i; for(i = 0; i < 6; i ++) {
p = malloc(CHUNK_SIZE); if(p == NULL) {
printf("malloc error!"); return 0; } memset(p, 0, CHUNK_SIZE); printf("malloc memory %d MB\n", (i + 1) * 100); sleep(10); } while(1) {
sleep(1); } return 0;}

2.编译,运行程序

[root@localhost ~]# gcc mem.c  -o mem[root@localhost ~]# ./mem malloc memory 100 MBmalloc memory 200 MBmalloc memory 300 MBmalloc memory 400 MBmalloc memory 500 MBmalloc memory 600 MB[root@localhost ~]# top -p 2265PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                  2265 root      20   0  618640 614744    388 S   0.0 15.9   0:00.47 mem

可以看出程序占用约600M内存。

3.添加cgroup限制

[root@localhost ~]# mkdir -p /sys/fs/cgroup/memory/memory-test[root@localhost ~]#  cat /sys/fs/cgroup/memory/memory-test/memory.limit_in_bytes9223372036854771712# 设置最大内存大小为200M[root@localhost ~]# echo 209715200 > /sys/fs/cgroup/memory/memory-test/memory.limit_in_bytes [root@localhost ~]# cat /sys/fs/cgroup/memory/memory-test/memory.limit_in_bytes 209715200#为了避免受swap空间的影响,设置swappiness为0来禁止当前cgroup使用swap[root@localhost ~]# echo 0 > /sys/fs/cgroup/memory/memory-test/memory.swappiness

4.重新启动程序,并将程序加入cgroup

[root@localhost ~]# ./mem #另一个shell执行[root@localhost ~]# echo `ps -ef | grep mem | grep -v grep | awk '{print $2}'` > /sys/fs/cgroup/memory/memory-test/tasks

过了一会可以看到程序被kill了。

[root@localhost ~]# ./mem malloc memory 100 MBmalloc memory 200 MBKilled

通过设置memory.oom_disable的值来设置内存超出设定值时是操作系统kill进程还是休眠进程。

# mem内存超过200M时进程会休眠echo 1 > /sys/fs/cgroup/memory/memory-test/memory.oom_control

转载地址:http://fecmb.baihongyu.com/

你可能感兴趣的文章
张一鸣无圈胜破圈?
查看>>
抓紧!抓紧!CSDN年终重榜福利来了~人手一份,快来投稿!!
查看>>
干货! AI 推断解决方案栈 Vitis AI 全流程独家解析
查看>>
真相了 | 敲代码时,程序员戴耳机究竟在听什么?
查看>>
回首互联网十年,我们能从八次烧钱大战中学到什么
查看>>
漫画:如何辨别二逼互联网公司!?
查看>>
麒麟信安面向场景化创新,赋能openEuler商业验证
查看>>
王者又连跪了?快让 AI 帮你上分!
查看>>
1 分钟带你认识从 "�" 到 "锟斤拷"
查看>>
3 年培养 10 万“码农”,郑州推出“码农计划”
查看>>
一个三本程序猿的大厂逆袭之路
查看>>
程序员弃码投中医?还做成了不错的生意! | 极客视频
查看>>
百度一 29 岁程序员因“篡改数据”被抓
查看>>
去年我年薪 30W,今年我一天做 3 顿饭
查看>>
入职大厂,我容易吗?
查看>>
《互联网人退化简史》
查看>>
CTO 写的低级 Bug 再致网站被黑,CEO 的号都被盗了!
查看>>
955 加班少的公司名单来了!
查看>>
狂赚 1227 亿!腾讯员工 2020 年人均年薪 81 万;小米员工人均年薪 45 万
查看>>
漫画:什么是加密算法?
查看>>