码迷,mamicode.com
首页 > 其他好文 > 详细

centos7下安装docker(9容器对资源的使用限制-内存)

时间:2017-10-24 17:22:58      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:多少   bytes   nbsp   多资源   避免   安装   cmd   linux   解决办法   

              一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源。容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他容器乃至整个Host的性能。

内存限额

与操作系统类似:容器使用的内存包括两部分:物理内存和swap内存

1.可以使用参数来控制容器内存的使用量

      -m或者是--memory:设置内存使用限额,例如:100M,2G

      --memory-swap : 设置内存+swap的使用限额(总内存)

技术分享

设置物理内存为400M swap内存为100M

2.使用progrium/stress镜像 来分配容器内存,progrium/stress可用于对容器内存执行压力测试

下载镜像

技术分享

 

运行一个progrium/stress镜像的容器

技术分享

--vm 1:启动一个线程

--vm-bytes 280M :为这个线程分配280M内存

因为280M内存在300M范围内,所以能够正常运行,其过程是:

1.分配280M内存

2.释放280M内存

3.再分配280M内存

4.释放280M内存

5.一直循环下去。。。。。

 

 

但是当我们运行一个比内存大的线程时,系统是否正常?

技术分享

由于分配的内存超过限额,stress线程报错,容器退出

 

 

 当我们在运行容器只指定了-m而没有指定--memory-swap时,--memory-swap默认是-m指定的两倍

技术分享

 

 

 

 

 

使用docker 的-m的参数进行容器内存分配的时候,内核可能会出现一下错误:

Your kernel does not support swap limit capabilities.memory limit without swap:这是由于内核不支持限制内存的设置

解决办法是:vim /etc/default/grub

修改为:技术分享

或者:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

重启后可以解决

 

centos7下安装docker(9容器对资源的使用限制-内存)

标签:多少   bytes   nbsp   多资源   避免   安装   cmd   linux   解决办法   

原文地址:http://www.cnblogs.com/lkun/p/7724317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!