7 Cgroup

Posted szss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7 Cgroup相关的知识,希望对你有一定的参考价值。

cgroup是Control Groups的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 cpu、memory、磁盘IO等等) 的机制,被LXC、docker等很多项目用于实现进程资源控制

cgroup将任意进程进行分组化管理的 Linux 内核功能。cgroup本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为cgroup子系统,有以下几大子系统实现:

  1. blkio:设置限制每个块设备的输入输出控制。例如:磁盘,光盘以及usb等等。
  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:增加了对每group的监测跟踪的能力,即可以监测属于某个特定的group的所有线程以及运行在特定CPU上的线程。

目前docker只是用了其中一部分子系统,实现对资源配额和使用的控制

以上是关于7 Cgroup的主要内容,如果未能解决你的问题,请参考以下文章

第 4 章 容器 - 030 - 实现容器的底层技术

Yarn使用cgroups隔离CPU资源实战

实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)

实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)

实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)

Kubernetes_从Linux的cgroup配置到Kubernetes中的cgroup配置