在 Docker 中控制容器占用 CPU 资源的份额是确保多容器环境稳定性和性能的关键操作。以下是核心方法与实践指南,结合参数原理、使用场景和操作步骤:
⚖️ 一、CPU 权重分配(相对优先级)
通过 --cpu-shares 参数设置容器在资源竞争时的相对权重,默认值为 1024。权重越高,竞争时获得的 CPU 时间越多,但不限制绝对资源上限。
适用场景:容器优先级动态调整(如高负载时保障关键服务)。
操作示例:
docker run -d --name high_priority --cpu-shares 2048 nginx # 权重为默认值的2倍
docker run -d --name low_priority --cpu-shares 512 nginx # 权重为默认值的一半[citation:2][citation:4]
原理:
若两个容器同时竞争 CPU,权重比 2048:512 = 4:1,高优先级容器获得 4 倍于低优先级容器的 CPU 时间[citation:2][citation:6]。
🔒 二、CPU 核数限制(绝对上限)
使用 --cpus 参数硬性限制容器可使用的 CPU 核心数量(支持小数),超出限制时进程被限流。
适用场景:精确控制计算密集型任务(如数据库、AI 推理)。
操作示例:
docker run -d --name limited_cpu --cpus 1.5 nginx # 限制最多使用 1.5 个 CPU 核心[citation:2][citation:7]
订阅专栏 解锁全文

8115

被折叠的 条评论
为什么被折叠?



