zoukankan      html  css  js  c++  java
  • centos7下安装docker(9容器对资源的使用限制-内存)

                  一个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"

    重启后可以解决

  • 相关阅读:
    POJ 1811 Prime Test 素性测试 分解素因子
    sysbench的安装与使用
    电脑中已有VS2005和VS2010安装.NET3.5失败的解决方案
    I.MX6 show battery states in commandLine
    RPi 2B Raspbian system install
    I.MX6 bq27441 driver porting
    I.MX6 隐藏电池图标
    I.MX6 Power off register hacking
    I.MX6 Goodix GT9xx touchscreen driver porting
    busybox filesystem httpd php-5.5.31 sqlite3 webserver
  • 原文地址:https://www.cnblogs.com/lkun/p/7724317.html
Copyright © 2011-2022 走看看