CGroup原理篇V1七CPUSET子系统

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGroup原理篇V1七CPUSET子系统相关的知识,希望对你有一定的参考价值。

写在前面

cpuset 子系统的控制组, 强制要求必须设置cpuset.cpus 和 cpuset.mems 参数。

同样地,控制组通过mkdir系统调用或shell命令来创建。它的属性如flag,允许的cpu和memory,附加的任务可以通过写入下面所列出的参数文件即可。

嵌套控制组下命名的层级结构允许讲一个系统进行嵌套分割,动态的调整,我们称之为软分区“soft-partitions”。

每个cpusets控制组下的参数文件需要遵循下面的规则:

  • 每个控制组下的CPU和内存同样属于其父控制组。
  • 如果其父控制组为非独占,它将不能被标记为独占。
  • 如果一个控制组标记为独占,其他并行的控制组不能预期复用CPU和内存资源。

顶层层级下的cpu和mem参数文件均为只读。这些cpu相关的文件会使用CPU热插拔通知程序自动追踪cpu_online_mask的值。内存相关的文件则会自动追踪node_states[N_MEMORY]的值。如:使用cpuset_track_online_nodes()钩子。

puset.effective_cpus 和cpuset.effective_mems文件正常情况下只是cpuset.cpus 和cpuset.mems文件各自的拷贝。如果cpuset的控制组文件系统通过“cpuset_v2_mode”进行挂载的,则这些文件的行为优先cpuset v2。换句话说,热插拔事件不会修改cpuset.cpus和cpuset.mems。这些事件仅仅会影响cpuset.effective_cpus 和 cpuset.effective_mems。具体的可参考Control Group v2中的cpuset v2.

一、cpuset.cpus(强制)

表示当前cpuset控制组的cpu列表。

用于设置进程可以访问的 CPU。这是一个逗号分隔列表,

以上是关于CGroup原理篇V1七CPUSET子系统的主要内容,如果未能解决你的问题,请参考以下文章

CGroup原理篇V1十HugeTLB子系统

CGroup系列七CPUSET子系统

CGroup原理篇V1五BLKIO子系统

CGroup原理篇V1十二Memory子系统

CGroup原理篇V1十一Memory子系统(Memcg)实现备忘录

CGroup原理篇V1十四NET_PRIO子系统