- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Cgroups On Phone
Agenda
Overview?
l Cgroups Subsystem
l Block IO Contro er
l The Question
l QA
Overview
What Cgroups Are?
cgroups (abbreviated from control groups) is a Linux kernel
feature that limits, accounts for and isolates the resource
usage (CPU, memory, disk I/O, network, etc.) of a co ection of
processes.
Engineers at Google (primarily Paul Menage and Rohit Seth)
started working on this feature - under the name process
containers - in 2006.[1] In late 2007 the nomenclature
changed to control groups due to the confusion caused by
multiple meanings of the term container in the Linux kernel
context, and control-group functionality merged into kernel
version 2.6.24.[2] Since then developers have added many
new features and contro ers, such as support for kernfs,[3]
firewa ing,[4] and a unified hierarchy.[5]
Cgroups 可以做什么?
1. 限制进程组可以使用的资源数量(Resource limiting) 。比如:memory 子
统可以为进程组设定一个memory 使用上限,一旦进程组使用的内存达到限额再
申请内存,就会出发OOM(out of memory) 。
2. 进程组的优先级控制(Prioritization) 。比如:可以使用cpu 子系统为某个进程
组分配特定cpu share 。
3. 记录进程组使用的资源数量(Accounting) 。比如:可以使用cpuacct 子系统
记录某个进程组使用的cpu 时间。
4. 进程组隔离(isolation) 。比如:使用ns 子系统可以使不同的进程组使用不同的
namespace ,以达到隔离的目的,不同的进程组有各自的进程、网络、文件系统
挂载空间。
5. 进程组控制(control) 。比如:使用freezer 子系统可以将进程组挂起和恢复。
Cgroups 概念
1. 任务(task) 。在 cgroups 中, 任务就是系统的一个进程。
2. 控制族群(control group) 。控制族群就是一组按照某种标准划分
的进程。Cgroups 中的资源控制都是以控制族群为单位实现。一个进
程可以加入到某个控制族群, 也从一个进程组迁移到另一个控制族群。
一个进程组的进程可以使用 cgroups 以控制族群为单位分配的资源,
同时受到 cgroups 以控制族群为单位设定的限制。
3. 层级(hierarchy) 。控制族群可以组织成 hierarchical 的形式, 既
一颗控制族群树。控制族群树上的子节点控制族群是父节点控制族群的
孩子, 继承父控制族群的特定的属性。
4. 子系统(subsytem) 。一个子系统就是一个资源控制器, 比如 cpu
子系统就是控制 cpu 时间分配的一个控制器。子系统必须附加
(attach) 到一个层级上才能起作用, 一个子系统附加到某个层级以后,
这个层级上的所有控制族群都受到这个子系统的控制。
层级关
Cgroups 在虚拟化中的位
置
Cgroup Subsystem
blkio -- 这个子系统为块设备设定输入/ 输出限制, 比如物理设备( 磁盘, 固态硬盘,USB 等)
cpu -- 这个子系统使用调度程序提供对 CPU 的 cgroup 任务访问。
cpuacct -- 这个子系统自动生成 cgroup 中任务所使用的 CPU 报告。
cpuset
原创力文档


文档评论(0)