docker资源限制——cgroup
一、介绍
Docker通过cgoup来控制容器使用的资源配额,包括cpu、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。
cgroup是control groups的缩写,是Linux 内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用。对不同资源的具体管理是由各个子系统分工完成的。
二、cpu资源控制
1.对cpu使用率控制
- linux通过CFS来调度各个进程对cpu的使用。CFS默认的调度周期是100ms。我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少cpu时间。
- 使用**–cpu-period即可设置调度周期,使用–cpu-quota**即可设置在每个周期内容器能使用的cpu时间。两者可以配合使用。
- 两者的单位为微秒。cpu-period的最小值为1000微妙,最大值为1秒,默认值为0.1秒。
cpu.cfs_period_us:cpu 分配的周期(微秒,默认为 100000)cpu.cfs_quota_us:表示该 cgroups 限制占用的时间(微秒),默认为 -1,表示不限制。如果设为 50000,表示占用 50000/100000=50% 的 CPU。