设为首页 收藏本站
查看: 1121|回复: 0

[经验分享] Docker资源限定

[复制链接]

尚未签到

发表于 2019-2-20 11:00:05 | 显示全部楼层 |阅读模式
Memory
--OOME
一旦发生OOME,任何进程都有可能被杀死,包括docker daemon
为此docker特地调整了docker daemon的OOM优先级,以免它被内核"正法"
但容器的优先级并未被调整!
限制容器可以使用的内存资源:
默认是没有限制!
-m/--memory --限制容器可用的内存空间
..............................................
--memory-swap k|b|m|g
限制交换分区使用大小,要先设置-m选项
用法规则:
-m的值为正数M时,--memory-swap 也是正数S时
容器可用总空间大小为S,其中ram为M,swap为(S-M)
若S=M则无可用swap资源
都设置有值时--memory-swap的值要大于-m
当-m等于正数M时--memory-swap为0时,相当于未设置swap
当-m等于正数时--memory-swap为unset 若主机启用了swap
则容器的可用swap为2*M
unset=未设置
当-m为正数M时,--memory-swap 为-1 若主机启用了swap
则容器可使用最大至主机上所有swap空间资源
注意:
在容器内使用free命令可以看到的swap空间并不具有其
所展现出的空间指标意义!
................................................
--memory-swappiness
[0--100]
0=能不用就不用交换分区
值越高就表示启用的优先级越高
--memory-reservation --设置预留内存空间
--kernel-memory --
--oom-kill-disable
true/false
设置如果不想因为分配内存空间用尽而使得容器被杀死
就设置这一项的值为true
.....................................................
CPU设置:
容器可以使用宿主机上所有cpu资源!
CFS---算法
cpu数量小于进程数
--cpu-shares [1024]
cpu资源共享 ---设置一个比例,容器都需要时,按比例分配
如果一个需要其它不需要,就可以都分配给需要的那个容器
--cpus= --限制一个容器最多能使用几核cpu
支持使用小数如0.5
--cpu-period=
--cpu-quota=
--cpuset-cpus --限制使用cpu范围
定义一个容器只能运行在那个cpu核心上工作!
cpu核心数从0开始
--cpuset-cpus 0-2
stress --镜像
https://hub.docker.com
--fork [n] --启动几个进程
--vm [n] --启动多少个进程对内存做压测
--cpu [n] --使用几个cpu
--io [n] --对io进行分配
--vm-bytes [n] --指定每个进程用多少内存
具体镜像应用:
docker run -it --name b1 --rm -m 256m 1ae56ccafe55 stress --vm 2
docker top [容器名称] --查看容器占用资源!
docker stats --显示容器资源占用!
对cpu做压测:
docker run -it --name b1 --rm -cpus 2 1ae56ccafe55 stress --cpu 4
定义使用的核心数为2
也就是说做压测无论启用多少个进程最多只能占用百分之二百资源
不做限制会直接使用所有cpu资源!
当我启用两个容器并对比例做出要求时:
docker run -it --name b1 --rm --cpu-shares 1024 1ae56ccafe55 stress --cpu 4
docker run -it --name b1 --rm --cpu-shares 512 1ae56ccafe55 stress --cpu 4
会按照比例分配cpu资源!
..........................................................
要想容器不会因占用资源过高而被kill:
方法1:
--oom-kill-disable=true --直接禁用
方法2:
--oom-score-adj [-1000-1000] 把值调整的越小越不容易被kill



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674809-1-1.html 上篇帖子: Docker仓库 下篇帖子: 什么是Docker?它是如何解决业务难题的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表