Docker的CPU资源限制

Docker使用Linux cgroup来实现资源的限制(Linux Note – cgroup),对于CPU的限制有两种方法:

1.cpuset

CPU Set限定容器使用某个固定的CPU核。使用默认的libcontainer引擎时,可以通过--cpuset来指定进程/docker容器在执行时使用某几个固定的CPU。比如0-3或以逗号分割如0,3,4(0是第一个CPU)。如果使用lxc引擎,可以指定--lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
agileek/cpuset-test给出了一种用于测试CPU的image,功能就是将指定的CPU资源用满。

2.cpu.shares

CPU shares是相对权重, 设置为一个正整数,代表所分配的相对CPU资源比。
在Docker中,使用默认的libcontainer引擎时,可以指定在docker run时指定-c--cpu-shares=0
如果使用lxc引擎,可以使用--lxc-conf="lxc.cgroup.cpu.shares = 1234"

^^
参考:
Container Resource Allocation Options in docker-run
Limiting a Docker Container to a single cpu core
Use Cases for cgroups

Posted in Linux, Ops, Virtualization.