『中级篇』容器的资源限制(22)

作者: IT人故事会 | 来源:发表于2018-06-25 23:03 被阅读22次

    对于容器的资源限制,在容器出来之前有虚拟化技术,我们可以在一个物理机上创建很多虚拟机,对于一台物理机来讲他的cpu和内存都是配置有限的,对于虚拟机我们在配置的时候也是可以进行限定的。本节跟上节关联比较紧密,建议一起学习。

    虚拟机配置

    • 内存配置
    • CPU 配置
    image.png

    容器配置

    为什么配置容器,给大家说个很实际的例子,如果一个虚拟机里面就一个容器,切这个容器不设置CPU和内存,当容器内的应用一直在运行的时候,它会一直慢慢的吞噬宿主机上的cpu和内存,最终导致的结果是,容器直到占满整个内存。这就是不限制的恐怖之处。

    • 内存控制
    docker image ls
    #限定运行内存是200M+虚拟内存200M 结果是内存是400M,
    #通过stress 设置一个一个测试的使用内存是500M,
    #也就是400M的内存运行一个要使用500M内存的应用效果是什么? 
    docker run --memory=200M liming/unbuntu-stress --vm 1 --verbose --vm-bytes 500M
    
    • CPU控制

    --cpu-share,就是cpu的权重,如果一个物理机里面有2个容器,A 权重是10,B的权重是5,2个容器占满了整个CPU100%,A占用了整个CPU的66%,B占用了整个CPU的33%。启动2个容器,看看效果,不要光说不练,实践才能出真知。

    A容器

    >cpu权限10,名字test11,PID是4342
    docker run --cpu-shares=10 --name=test11 liming/ubuntu-stress --cpu 1
    

    B容器

    >cpu权限5,名字test22,PID是4395
    docker run --cpu-shares=5 --name=test22 liming/ubuntu-stress --cpu 1
    

    A,B容器的对比

    发现是不是容器A占用了66.6%,B占用了33.3%,这就是CPU权重的重要性


    PS:Docker 底层的核心技术包括

    1. Linux 上的命名空间(Namespaces)
    2. 控制组(Control groups)做资源限制
    3. Union 文件系统(Union file systems)
    4. 容器格式(Container format)分层

    往期精彩
    1. docker导学(一)
    2. 容器的技术概述(二)
    3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
    4. docker官网介绍(四)
    5. 如何在mac上安装docker(五)
    6. 如何在window上安装docker(六)
    7. 如何在mac上通过vagrant安装虚拟机(七)
    8. 如何在window上通过vagrant安装虚拟机(八)
    9. docker-Machine的本地使用(九)
    10. docker-Machine的本地使用(十)
    11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
    12. docker架构和底层技术(12)
    13. docker Image概述(13)
    14. 手动建立一个base Image(14)
    15. 什么是Container(15)
    16. 构建自己的Docker镜像(16)
    17. Dockerfile详解(17)
    18. 镜像的发布(18)
    19. Dockerfile实战(19)
    20. 容器的操作(20)
    21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)

    相关文章

      网友评论

        本文标题:『中级篇』容器的资源限制(22)

        本文链接:https://www.haomeiwen.com/subject/kljueftx.html