为了账号安全,请及时绑定邮箱和手机立即绑定

『中级篇』容器的资源限制(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)分层
点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.7万
获赞与收藏
1318

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消