首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cgroups如何与非分组进程交互?

cgroups如何与非分组进程交互?
EN

Unix & Linux用户
提问于 2015-08-19 19:55:14
回答 1查看 974关注 0票数 13

我在一台单核机器上有3个进程。每个进程都是完全相同的,并且尽可能快地消耗CPU (紧密循环)。其中两个(AB)由cgexec组成不同的组,其股票设置为512和512。第三款(C)是定期推出的,而不是cgexec。

一旦全部启动并运行,C将获得66%的CPU,而AB则分别占33%。如果我杀了C,那么AB各得到50% (和预期的一样)。

为什么C获得66%?在这种情况下,我希望每个人都能得到33%,或者50% (C),25% (A)和25% (B)。然而,无论我怎么做数学,66%的人上C都是行不通的。

一般来说,我想了解在资源共享方面,没有cgexec启动的进程是如何与cgexec启动的进程交互的(尤其是CPU,但是如果不是太复杂的话,我们会更喜欢一个更一般的答案)。

EN

回答 1

Unix & Linux用户

发布于 2016-05-31 20:53:22

C组是等级化的,所有子进程都继承它们。因此,所有进程都必须在某个cgroup中。默认情况下,它是根cgroup,默认情况下它有1024个共享,在您的示例中是A和B的两倍。

CPU时间根据在cpu.shares中分配给它们的权重在CPU组之间共享。

如果A有1024股,B 512、C 256和D 256,cpu时间分布为A-50%、B-25%、C和D12.5%。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/224289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档