Docker——Cgroup资源限制
一、Cgroup (1)Docker通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。 (2)Cgroup 是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。 Cgroup 子系统: 1、blkio:设置限制每个块设备的输入输出控制; 2、cpu:使用调度程序为 cgroup 任务提供 cpu 的访问; 3、cpuacct:产生 cgroup 任务的 cpu 资源报告; 4、cpuset:如果是多核心的 cpu,这个子系统会为 cgroup 任务分配单独的 cpu 和内存; 5、devices:允许或拒绝 cgroup 任务对设备的访问; 6、freezer:暂停和恢复 cgroup 任务; 7、memory:设置每个 cgroup 的内存限制以及产生内存资源报告; 8、net_cls:标记每个网络包以供 cgroup 方便使用; 9、ns:命名空间子系统; 10、perf_event:增加了对每个 cgroup 的监测跟踪能力,可以监测属于某个特定的 cgroup 的所有线程及运行在特定 CPU 上的线程。 二、使用 stress 工具测试 CPU 和内存 首先使用 Dockerfile 来创建一个基于 Centos 的 stress 的工具镜像: [root@localhost ~