7 Cgroup
Posted szss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7 Cgroup相关的知识,希望对你有一定的参考价值。
cgroup是Control Groups的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 cpu、memory、磁盘IO等等) 的机制,被LXC、docker等很多项目用于实现进程资源控制
cgroup将任意进程进行分组化管理的 Linux 内核功能。cgroup本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为cgroup子系统,有以下几大子系统实现:
- blkio:设置限制每个块设备的输入输出控制。例如:磁盘,光盘以及usb等等。
- cpu:使用调度程序为cgroup任务提供cpu的访问。
- cpuacct:产生cgroup任务的cpu资源报告。
- cpuset:如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存。
- devices:允许或拒绝cgroup任务对设备的访问。
- freezer:暂停和恢复cgroup任务。
- memory:设置每个cgroup的内存限制以及产生内存资源报告。
- net_cls:标记每个网络包以供cgroup方便使用。
- ns:命名空间子系统。
- perf_event:增加了对每group的监测跟踪的能力,即可以监测属于某个特定的group的所有线程以及运行在特定CPU上的线程。
目前docker只是用了其中一部分子系统,实现对资源配额和使用的控制
以上是关于7 Cgroup的主要内容,如果未能解决你的问题,请参考以下文章
实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)
实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)