[In A Word]In A Word章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只是用了其中一部分子系统,实现对资源配额和使用的控制

posted on 2019-08-29 10:51  深圳私塾  阅读(143)  评论(0编辑  收藏  举报

导航