cgroup:对进程进行分组在对分组整體进行资源的分配和控制
- cgroup形成树形结构,每个节点都是一个进程组
- 子节点是父节点进程组的子集,并继承父节点属性
- 根部节点为root group(为系统所有进程)
- 进程创建子进程,默认该子进程与父进程同处于同一个进程组中但是可以随意挪动子进程所处的cgroup
- 一个进程不同处于同一個层级上的,等同级别的cgroup中
subsystem:子系统子系统就是资源控制器,每种子系统就是一个资源的控制器
- cpu子系统:该子系统为每个进程组设置一個使用CPU的权重值以此来管理进程对cpu的访问。
- cpuset子系统:对于多核cpu该子系统可以设置进程组只能在指定的核上运行,并且还可以设置进程組在指定的内存节点上申请内存
- cpuacct子系统:该子系统只用于生成当前进程组内的进程对cpu的使用报告。
- memory子系统:该子系统提供了以页面为单位对内存的访问比如对进程组设置内存使用上限等,同时可以生成内存资源报告
- blkio子系统:该子系统用于限制每个块设备的输入输出首先,与CPU子系统类似该系统通过为每个进程组设置权重来控制块设备对其的I/O时间;其次,该子系统也可以限制进程组的I/O带宽以及IOPS
- devices子系统:通过该子系统可以限制进程组对设备的访问,即该允许或禁止进程组对某设备的访问
- freezer子系统:该子系统可以使得进程组中的所有进程掛起。
- net-cls子系统:该子系统提供对网络带宽的访问限制比如对发送带宽和接收带宽进程限制。
- 一个层级可以附加大于等于一个子系统例洳可以将cpu、memory同时attach到同一个/cgroup/cpu_mem上
- 如果一个层级已经附加了一个子系统,则不能再讲其它子系统附加到它之上例如memory已经附加在/cgroup/mem上,cpu则不能再次附加到/cgroup/mem上了
- 可以将一个子系统同时附加给多个层级上如可以将cpu同时附加到/cgroup/cpu1和/cgroup/cpu2
- 每个层级可以关联多个子系统
mount一个子系统:
发布了14 篇原创文嶂 · 获赞 2 · 访问量 53万+