博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cgroup
阅读量:6983 次
发布时间:2019-06-27

本文共 1438 字,大约阅读时间需要 4 分钟。

Cgroup(control group)是将任意进程进行分组化管理的Linux内核功能。Cgroup本身

是提供将进程进行分组化管理的功能和接口的基础结构,I/O或内存的分配控制等具体
的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为Cgroup子系
统或控制器。
Cgroup子系统有控制内存的Memory控制器、控制进程调度的CPU控制器等。运行中
的内核可以使用的Cgroup子系统由/proc/cgroup来确认。

Cgroup提供了一个cgroup虚拟文件系统,作为进行分组管理和各子系统设置的用户接

口。要使用Cgroup,必须挂载cgroup文件系统。这时通过挂载选项指定使用哪个子系
统。这里指定debug这个没有实质功能的调试用子系统来挂载。
# mount -t cgroup -o debug cgroup /cgroup
注意事项:这里所说的“虚拟文件系统”,是指procfs和sysfs这种不具有物理设备的文件系统。
并不是用来接纳文件系统差异的内核内部层layerVFS。
小贴士:关于cgroup文件系统的标准化挂载要点,是由开发论坛进行讨论的,但目前尚未得出结
论。这里是挂载到/cgroup。

挂载后,在挂载位置下应该可以看到下列几个文件。这些是Cgroup呈现出来的特殊文件。

# ls /cgroup

cgroup.event_control debug.current_css_set debug.taskcount
cgroup.procs debug.current_css_set_cg_links notify_on_release
debug.cgroup_css_links debug.current_css_set_refcount release_agent
debug.cgroup_refcount debug.releasable tasks
文件名前缀为cgroup的以及没有前缀的文件是由Cgroup的基础结构提供的特殊文件。
而前缀为debug的文件是由debug子系统提供的特殊文件。Cgroup的子系统提供的
特殊文件都会像这样加上子系统的前缀。因此,根据挂载时指定的选项,即所使用的子
系统不同,存在的特殊文件也不同。但是Cgroup的基础结构所提供的特殊文件则是无
论指定哪种子系统都一直存在的。特殊文件分为只读文件和可读写文件。只读文件是为
用户提供信息的文件。可读写的特殊文件通过写入值来更改Cgroup以及Cgroup子系统
设置的文件。设置的值可以通过读入特殊文件来确认。在这些特殊文件中,最重要的是
tasks特殊文件。其内容可以显示如下。
# cat /cgroup/tasks
1
2
3
4
...
虽然看上去只是一些数字的排列,但其实这些是属于这个分组的线程的线程ID(TID)。
在这时,系统上运行的所有线程的TID都包含在/cgroup/tasks中。这就表示全部线
程都属于这个分组。那么这里出现的“分组”又是什么呢?分组,就是体现为cgroup文
件系统目录的线程的集合。由于/cgroup也是目录,因此它也表示一个分组。像这样位
于挂载点最上层的目录是自动生成的分组,称为根分组。在这个阶段,只有/cgroup(即
根分组)是系统上存在的唯一分组。

转载于:https://www.cnblogs.com/heidsoft/p/3852480.html

你可能感兴趣的文章
python flaskfeng封装跨域请求头和封装json格式
查看>>
【搜索引擎基础知识2】网络爬虫
查看>>
Aptana Studio 3 汉化
查看>>
phonegap+jquerymobile开发android的心得(4)
查看>>
python 使用PyTesser--安装
查看>>
无需编译,1分钟安装Ubuntu官方构建的最新版Linux内核
查看>>
解压即用,Ubuntu上Nginx/Apache/PHP编译打包
查看>>
table设置border没有空隙
查看>>
Maven的setting.xml 配置详解
查看>>
Python3.7源码在windows(VS2015)下的编译和安装
查看>>
10_css选择符类型1.html
查看>>
修改 liteide 的 godoc 文档样式
查看>>
Java学习笔记(35)——Java集合07之TreeMap
查看>>
甲骨文推Oracle WebLogic应用服务器12c
查看>>
WEB服务器、应用程序服务器、HTTP服务器区别
查看>>
工厂方法
查看>>
IPSEC ××× 综合应用
查看>>
Linux下安装及管理应用程序
查看>>
Vmware vCenter 配置分布式交换机
查看>>
Ubuntu下RabbitVCS的安装和简单使用
查看>>