默认情况下,此值设置为1024.我假设这意味着如果我将组的份额设置为1024,那么它将是可用计算能力的100%。
我有什么方法可以增加粒度吗?例如,我希望最大值为2048或8196,而不是最大值为1024。
答案 0 :(得分:1)
IIRC,cpu.shares已经非常精细了。
cpu.shares:生活在同一层次结构中的每个群体的权重 转换为预期获得的CPU数量。在cgroup创建时, 每个组的默认值为1024.分配给的CPU的百分比 cgroup是股票价值除以所有股票的总和 cgroups在同一级别。
cpu.shares的值用于与其他cgroup进行比较。如果你有一个在cgroups下运行的进程,那么无论cpu.shares的值是多少,它总是会得到主机可以节省的CPU。在cgroups下运行的多个进程为cpu.shares分配了相同的值,将平均分配可用的CPU。
如果在cgroups下有多个进程,则会将它们的cpu.shares值进行比较,而具有较高数量的进程将获得可用主机CPU的较高百分比。如果你有两个cgrouped进程cpu.shares=1024
,那么为第三个进程分配cpu.shares=2048
,前两个进程将获得相等数量的可用CPU,而第三个进程将获得可用CPU的两倍(大约25%,25%,50%)。
实际数字可能是您想要的任何数字(现在只是粒度),只有它们之间的百分比差异很重要。如果您使用cpu.shares=5
和cpu.shares=10
或cpu.shares=50000
和cpu.shares=100000