版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smilesundream/article/details/85240707
参考:https://tech.meituan.com/cgroups.html
使用场景
限制进程对cpu、mem等资源的使用,比如限制某个进程在八核机器上最多使用六核
Cgroups子系统
- cpu子系统:限制进程的cpu使用率
- cpuset子系统:为进程分配单独的cpu节点或者内存节点
- memory子系统:限制进程的mem使用率
- devices子系统:限制进程能够访问哪些设备
- freezer:挂起或者恢复进程
Cgroups层级结构
cgroups层级结构可以attach一个或者几个cgroup子系统,并且当前层级结构可以对其attach的cgroups子系统进行资源限制。
当创建了cgroups层级结构中的节点之后,可以把进程加入到某个某个节点,则该进程会受到这个节点的资源限制。
进程通过css_set与Cgroups节点连接。
一个css_set可以连接多个cgroup,但是只能连接同一个cgroup下的一个节点
VFS
隐藏文件系统实现细节,提供给进程的一个文件系统接口
包含数据结构:
- 超级块对象:存放ext2、ext3等磁盘文件系统信息
- inode:存放具体文件信息,比如文件在磁盘上的存储块信息
- 文件对象:一个文件对象对应进程打开的一个文件,其中定义了文件的读写操作等方法
- 目录项对象:主要用于文件查找