我正在为我的研究团队设置cgroups配置。服务器有8个cpus。团队成员只能使用一部分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才能工作。
cpu.cfs_quota_us和儿童cpu.shares能一起工作吗?
发布于 2019-02-19 17:44:51
不使用cpu.shares来设置任务优先级。
它用于定义CPU共享的相对(抽象)量,即CPU专用于某个组/用户的任务而不是另一个组/用户的任务。
在这里,您基本上是说,对于他的任务,team/user2将有比team/user1多三倍(768/256)的专用计算时间。换句话说,team/user2将占用75%的CPU时间,而team/user1只占用25%的时间。
cpu.shares和cpu.cfs_quota_us做同样的事情,但方式不同。前者使用分时的相对表示,后者使用以微秒为单位的精确量化。因为它们都用于定义CPU分时,所以它们不能一起使用。
https://stackoverflow.com/questions/54762545
复制相似问题