千家信息网

docker 限制容器对CPU的使用

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,上节学习了如何限制容器对内存的使用,本节我们来看CPU。默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。Docker 可以通过-c或--cpu-shares设置容器使用 CPU
千家信息网最后更新 2025年12月02日docker 限制容器对CPU的使用

上节学习了如何限制容器对内存的使用,本节我们来看CPU。

默认设置下,所有容器可以平等地使用 host 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 ubuntudocker 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。

下面我们继续用 progrium/stress 做实验。

1、启动 container_A,cpu share 为 1024:

--cpu用来设置工作线程的数量。因为当前 host 只有 1 颗 CPU,所以一个工作线程就能将 CPU 压满。如果 host 有多颗 CPU,则需要相应增加--cpu的数量。

2、启动 container_B,cpu share 为 512:

3、在 host 中执行top,查看容器对 CPU 的使用情况:


container_A 消耗的 CPU 是 container_B 的两倍。

4、现在暂停 container_A:

5、top显示 container_B 在 container_A 空闲的情况下能够用满整颗 CPU:

CPU限额就讨论到这里,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

容器 资源 情况 数量 权重 分配 限制 两个 空闲 线程 学习 工作 不同 平等 优先级 内存 内容 取决于 只有 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发计算机培训学校地址 服务器更新统一管理 健康码服务器垃圾 安博通网络安全联盟 斑马网络技术有限公司上市 怎么让别人连自己的数据库 通过操作数据库的方式去更改密码 报表软件开发公司 2021年6月网络安全 钉钉工作流本地服务器 疫情期间如何做好网络安全防线 中小学网络安全教育研究子目标 做app软件开发累不累 软件开发方法要求最高 忍3咒印冷却服务器 更改华为服务器管理口地址 网络安全法的会议记录 一个软件开发正常流程 软件开发公司财务培训 网络安全工程师在线学习 重庆定制软件开发哪家好 电脑部分网页找不到服务器 下表是某工厂的工程数据库 战地3为什么服务器没人 网络安全防患 计算机网络技术与社会需求 网络安全小卫士小知识 政法干警的服务器什么时候开始 安溪招聘网络技术 软件开发管培生是做啥的
0