我正在为我的研究团队设置cgroups config。服务器有8个CPU。团队成员只能使用部分CPU时间,因此对于团队,我设置了cpu.cfs_quota_us = 400000
。我还想通过cpu.shares添加任务优先级。
例如,这是我的cgroup配置:
group team {
cpu {
cpu.cfs_period_us = 100000;
cpu.cfs_quota_us = 400000; #4 CPUs
}
}
group team/user1 {
cpu {
cpu.shares = 256;
}
}
group team/user2 {
cpu {
cpu.shares = 768;
}
}
仅当我将父组的cpu.cfs_quota_us设置为-1并且所有cpu都在使用中时,cpu.shares才起作用。
cpu.cfs_quota_us和儿童的cpu.shares可以一起工作吗?
答案 0 :(得分:0)
cpu.shares
不能设置任务优先级。
它用于定义相对(抽象)的CPU共享量,即CPU专用于某个组/用户而不是另一个组/用户的任务。
您在这里基本上说team/user2
的专用计算时间比team/user1
多了三倍(768/256)。换句话说,team/user2
将使用75%的CPU时间,而team/user1
将仅使用25%的CPU时间。
cpu.shares
和cpu.cfs_quota_us
做相同的事情,但是以两种不同的方式。
前者使用分时的相对表示,而后者使用微秒的精确量化。因为它们都用于定义CPU时间共享,所以不能一起使用。