docker cpu

作者:原创时间:2022-06-07
文档

docker cpu是什么,让我们一起了解一下?

当我们在一台设备上运行多个Docker时,我们会对一个Docker容器的使用进行限制,避免其使用过多的系统硬件资源,而造成其他的容器“饿死”的现象。在Docker的使用中,我们通过使用cgroup来对Docker的容器资源使用进行限制。

Docker对容器CPU的限制可以分为三种,即相对份额限制、绝对使用限制以及CPU核心控制。

CPU相对份额限制:

所谓CPU相对份额限制,指的是给Docker的镜像分配一个“份额”,使得当CPU资源紧张时,不同的Docker镜像之间对CPU资源的竞争大致上是按照这个份额的比例来进行使用的。

CPU绝对使用限制:

不同与CPU的份额相对限制,Docker还支持一种“硬性”的对CPU资源的限制。我们都知道,现代操作系统为了保证多程序多任务的运行,对CPU的使用采取了分片的策略,CPU在使用时会不断的从一个任务切换到另一个任务,每次获得CPU资源的进程实际上就是获得了CPU的使用权,或者说获得了CPU分片。

CPU核心控制:

除了上述对CPU的使用限制外,现代的计算机一般是多核CPU,因此,我们有时还希望一个Docker容器能够固定在一个CPU上运行。这对于NUMA(即非一致存储访问结构)的服务器尤为有用,而对于简单的单核服务器则没有任何作用。

在Docker容器运行时,我们可以使用参数–cpuset来绑定CPU,使得该Docker容器只在固定的CPU上运行。

容器CPU设置

默认设置下,所有容器可以平等地使用主机 CPU 资源并且没有限制。docker 可以通过-c或–cpu-shares设置容器使用 CPU 的权重。如果不指定,默认值为 1024。

与内存限额不同,通过-c设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。某个容器最终能分配到的 CPU 资源取决于它的 cpu share 占所有容器 cpu share 总和的比例。通过 cpu share 可以设置容器使用 CPU 的优先级。

比如在 host 中启动了两个容器:

docker run --name "container_A" -c 1024 ubuntu
docker run --name "container_B" -c 512 ubuntu

container_A 的 cpu share 1024,是 container_B 的两倍。当两个容器都需要 CPU 资源时,container_A 可以得到的 CPU 是 container_B 的两倍。

需要注意的是,这种按权重分配 CPU只会发生在 CPU资源紧张的情况下。如果 container_A 处于空闲状态,为了充分利用 CPU资源,container_B 也可以分配到全部可用的 CPU。

以上就是小编的分享,希望可以帮助到大家。

显示全文
docker tag docker go docker创建容器 ui设计全称 docker log ui专业是什么专业 docker rm ui和视觉设计的区别 docker elk docker dns docker git docker rpm ui设计包括哪些 ui设计师要懂什么 ui和gui的区别 docker cmd docker cp怎么用 docker cp如何用 如何查看docker日志 怎样查看docker日志 docker查看日志命令 docker如何查看日志命令 docker有自己的防火墙吗 docker有防火墙吗 删除docker镜像 卸载docker 退出docker k8s docker docker hub docker的作用 docker原理 docker工具 网络工程师怎么获得 ui框架排行 ui学什么的 什么叫ui界面设计 ui主要是干什么 网络工程师要考些什么 网络工程师需要考英语吗 网络工程师证书怎么补办 网络工程师要学系统吗 网络工程师怎么算及格 思科网络工程师证书报名条件 程序员跟网络工程师的区别