利用docker怎么对容器资源进行限制?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Docker 提供的内存限制功能有以下几点:
1、容器能使用的内存和交换分区大小。
2、容器的核心内存大小。
3、容器虚拟内存的交换行为。
4、容器内存的软性限制。
5、是否杀死占用过多内存的容器。
6、容器被杀死的优先级
-m,--memory 内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M --memory-swap 内存+交换分区大小总限制。格式同上。必须必-m设置的大 --memory-reservation 内存的软性限制。格式同上 --oom-kill-disable 是否阻止 OOM killer 杀死容器,默认没设置 --oom-score-adj 容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0 --memory-swappiness 用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数 --kernel-memory 核心内存限制。格式同上,最小为 4M
用户内存限制就是对容器能使用的内存和交换分区的大小作出限制。
使用时要遵循两条直观的规则:
-m,--memory选项的参数最小为 4M。 --memory-swap不是交换分区,而是内存加交换分区的总大小,所以--memory-swap必须比-m,--memory大。
docker run命令和 CPU 限制相关的所有选项如下:
--cpuset-cpus="" 允许使用的 CPU 集,值可以为 0-3,0,1 -c,--cpu-shares=0 CPU 共享权值(相对权重) cpu-period=0 限制 CPU CFS 的周期,范围从 100ms~1s,即[1000, 1000000] --cpu-quota=0 限制 CPU CFS 配额,必须不小于1ms,即 >= 1000 --cpuset-mems="" 允许在上执行的内存节点(MEMs),只对 NUMA 系统有效
其中--cpuset-cpus用于设置容器可以使用的 vCPU 核。-c,--cpu-shares用于设置多个容器竞争 CPU 时,各个容器相对能分配到的 CPU 时间比例。--cpu-period和--cpu-quata用于绝对设置容器能使用 CPU 时间。
看完上述内容,你们掌握利用docker怎么对容器资源进行限制的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。