![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Cgroups
勇敢的土豆
只为成功找方法,不为失败找借口!
展开
-
cgroups2 数据结构设计
cgroups 数据结构设计我们从进程出发来剖析cgroups相关数据结构之间的关系。在Linux中,管理进程的数据结构是task_struct,其中与cgroups有关的:#ifdef CONFIG_CGROUPS /* Control Group info protected by css_set_lock */ struct css_set *cg转载 2016-03-11 13:51:48 · 346 阅读 · 0 评论 -
Cgroup3 文件系统
Cgroup文件系统Cgroups用户空间管理Cgroups用户空间的管理是通过cgroup文件系统实现的。比如要创建一个层级:mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem这个命令就创建一个名为cpu_and_mem的层级,这个层级上附加了cpu,cpuset,mem转载 2016-03-11 13:52:46 · 565 阅读 · 0 评论 -
Cgroups4 子系统的实现
子系统的实现cpu子系统 cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片。附加了cpu子系统的hierarchy下面建立的cgroup的目录下都有一个cpu.shares的文件,对其写入整数值可以控制该cgroup获得的时间片。例如:在两个 cgroup 中都将 cpu.shares 设定为 1 的任务将有相同的 CPU 时间,但在 cgroup 中将 cpu转载 2016-03-11 13:53:10 · 289 阅读 · 0 评论 -
Cgroups5 devices子系统
devices子系统 使用devices 子系统可以允许或者拒绝cgroup中的进程访问设备。devices子系统有三个控制文件:devices.allow,devices.deny,devices.list。devices.allow用于指定cgroup中的进程可以访问的设备,devices.deny用于指定cgroup中的进程不能访问的设备,devices.list用于报告cgr转载 2016-03-11 13:53:36 · 421 阅读 · 1 评论 -
Cgroups6 freezer子系统
freezer子系统freezer子系统用于挂起和恢复cgroup中的进程。freezer有一个控制文件:freezer.state,将FROZEN写入该文件,可以将cgroup中的进程挂起,将THAWED写入该文件,可以将已挂起的进程恢复。该文件可能读出的值有三种,其中两种就是前面已提到的FROZEN和THAWED,分别代表进程已挂起和已恢复(正常运行),还有一种可能的值为FREEZIN转载 2016-03-11 13:53:59 · 406 阅读 · 0 评论 -
Cgroups7 ns子系统
ns子系统 ns子系统是一个比较特殊的子系统。特殊在哪儿呢,首先ns子系统没有自己的控制文件,其次ns子系统没有属于自己的状态信息,这点从ns子系统的ns_cgroup的定义可以看出:struct ns_cgroup {struct cgroup_subsys_state css;};它只有一个cgroup_subsys_state成员。转载 2016-03-11 13:54:39 · 623 阅读 · 0 评论 -
cgroups8 memory子系统
memory子系统memory 子系统可以设定 cgroup 中任务使用的内存限制,并自动生成由那些任务使用的内存资源报告。memory子系统是通过linux的resource counter机制实现的。下面我们就先来看一下resource counter机制。resource counter是内核为子系统提供的一种资源管理机制。这个机制的实现包括了用于记录资源的数据结构和相关函数转载 2016-03-11 13:55:00 · 396 阅读 · 0 评论 -
Cgroups9 cpuset子系统
cpuset子系统cpuset子系统为cgroup 中的任务分配独立 CPU(在多核系统)和内存节点。Cpuset子系统为定义了一个叫cpuset的数据结构来管理cgroup中的任务能够使用的cpu和内存节点。Cpuset定义如下:struct cpuset {struct cgroup_subsys_state css; unsigned long fla转载 2016-03-11 13:55:19 · 473 阅读 · 0 评论 -
Cgroups1 Cgroups是什么
Cgroups是什么?Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。Cgro转载 2016-03-11 13:48:50 · 295 阅读 · 0 评论