| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Docker:资源限制 -> 正文阅读 |
|
[系统运维]Docker:资源限制 |
前面我们提到过,容器能够得以实现,主要依赖于内核的种的NameSpace,CCgroups ?CCgroups(控制组)控制NameSpace(命名空间)来进行资源的分配 ?1、默认情况下一个Docker中的一个Container是没有资源限制的,调度器能够Container调度多少资源,它都能 吃掉 2、Docker provides 提供了控制Memory,CPU,block IO,从这三个维度来进行控制的,其实它正真能控制前两个Memory,CPU,【我们知道Memeory是不可压缩资源,当一个容器内的进程耗尽CPU时候再次申请CPU,有可能会因为OOM而被kill掉;而CPU没关系【可压缩资源】,你耗费的太多,内核使劲压缩,不会分配给你】 3、这些控制都依赖于LInux capabilites MemoryLinux是如何执行OOME的? 在Linux主机上如果内核探测到当前宿主机,没有足够的内存可用,用于执行重要的功能就会抛出OOME (Out Of Memory Exception)就会去Kill掉这个程序以释放某些资源
限制Memory资源【一般在启动的时候添加使用】--menory-swappiness:设置使用容器使用交换分区的倾向性【0-100:0能不用就不用,100:不得不用的时候就用,一般是40-60】 --memory-reservation:预留的空间的 --oom-kill-disable:禁止发生OOM后被kill掉 ?--memory-swap设定之前一定要先设置--memory;没有设置物理内存大小,是不能设置交换分区的 --memory-swap和--memory组合起来的表现设定?CPU容器如果不加以限制的话,是可以使用宿主机上所有的CPU资源的;我们可以进行不同的设置,不过大多数进程调度的时候是使用CFS scheduler 算法的;Docker 1.13版本后,还支持的realtime scheduler ?--cups=<value>:设置使用的CPU核心数 --cpu-shares:按照比列分配CPU资源【你需要就按照比例进行分配,如果不需要就会全部吃掉】 --cpuset--cpus:设置CPU的在那个核心上面【0-4】 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:35:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |