Docker容器CPU资源限制

发布时间:2026/8/1 2:47:11

Docker容器CPU资源限制 1、--cpus 数值 允许容器最多使用多少颗逻辑CPU的算力本次示例采用的myweb:1.0镜像基础镜像为python:3.12-slim[rootR-docker ~]# docker run -d --cpus2 -m 500m --name zhangyh-1 myweb:1.0容器名 镜像[rootR-docker ~]#mkdir /cpu[rootR-docker cpu]#cd /cpu[rootR-docker cpu]#vim use_cpu.py#输入以下内容i 1while True:i i 1print(i)[rootR-docker cpu]#docker cp . zhangyh-1:/[rootR-docker ~]#docker exec -it zhangyh-1 bashroot12d1f62854d9:/app# cd /root12d1f62854d9:/# python use_cpu.py另起一个会话输入docker stats 实时查看所有容器资源占用统计标准一逻辑核心100%可以看到cpu使用率在一百二左右浮动说明我们设定的--cpus2 指的是最多允许使用两个逻辑核心算力不是要求强制程序占满cpu上限200%可能到两百零几2、--cpuset-cpus 核心编号 强制容器内所有进程、线程只能运行在指定CPU核心上docker run -d --name zhangyh-3 --cpus 1 --cpuset-cpus 0 myweb:1.0如果是示例中的use_cpu文件它是单进程单线程最多只能跑满100%想要达到200%需要至少2个CPU密集进程可替换为from multiprocessing import Processdef loop():i 1while True:i 1if __name__ __main__:# 启动2个进程尝试打满2个核心for _ in range(2):p Process(targetloop)p.start()可以使用top命令再按1 展示每一颗独立逻辑 CPU 核心的单独负载3、--cpu-shares 权重 默认值1024只在服务器CPU资源争抢、满载时生效服务器空闲时容器依旧可以占满全部CPU容器 A--cpu-shares1024容器 B--cpu-shares512服务器 CPU 打满争抢资源时A : B 分配时间比例 ≈ 2 : 1空闲状态下两个容器都可以占用全部 CPU 算力4、--cpuset-mems很少使用配合--cpuset-cpus限定进程使用对应NUMA节点内存

相关新闻