Memory
在 cgroup 和外部世界之間分配 CPU 核心
是否可以以與記憶體限制類似的方式管理對 CPU 核心的訪問?
特別是我需要能夠動態地創建和銷毀 cgroup,這會將一組特定的程序限制為所需數量的 CPU 核心。
我不能使用 CPU 集,因為這需要在多插槽(直到小型 NUMA)機器上工作,如果我將程序硬固定到核心上,由於核心碎片(程序範圍從幾分鐘到幾個月不等),我很快就會遇到巨大的性能問題在執行時)。
第二個複雜之處是這需要與 cgroups 之外的程序很好地配合。
例如,我可以有以下情況:
1 process limited to 2 cores and 4GB RAM
2 processes unlimited, but should have guaranteed access to the remainder of the machine
這兩個選項可用於限制 cgroup 可用的 CPU 核心數量:
cpu.cfs_period_us cpu.cfs_quota_us
cfs_period_us
定義需要執行的頻率定義了 cgroup 在每個期間應該接收cfs_quota_us
多少。us
因此,如果您指定cfs_quota_us
為 N 倍,cfs_period_us
則 cgroup 的數量將接收 N 個核心。