我在一台核心机器上有3个进程。每个进程都完全相同,并尽可能快地刻录CPU(紧密循环)。其中的两个(A
和B
)与cgexec在单独的组中启动,并且共享设置为512和512。第三个(C
)是定期启动的,而不与cgexec一起启动。
一旦一切就绪并运行,C
即可获得66%的CPU A
并B
拆分33%。如果我杀了C
,然后A
和B
获得各50%(预期)。
为什么C
得到66%?在这种情况下,我希望每个人占33%,或者50%(C),25%(A)和25%(B)。C
不管我怎么做数学,都会有66%的人无法解决问题。
总的来说,我想了解在资源共享(特别是CPU,但如果不太复杂的话,可以理解的话)下cgexec
启动的进程如何与启动的进程进行交互cgexec
。
首先,我想知道如何测量CPU使用率百分比?您运行A,B和C的优先顺序是什么?
—
KWubbufetowicz
我相信我是测量CPU使用率有
—
米卡·佐尔图
top
,我相信他们从命令提示符,启动了相当简单:cgexec -g cpu:foo myprogram
和./myprogram
。已经有一段时间了,所以我不确定。
myprogram是否可以使用多个单线程/进程?顺便说一句,您仍然有兴趣解决这个问题吗?
—
KWubbufetowicz
该程序是为测试此行为而编写的测试应用程序。故意使用单线程以缩小结果范围。我仍然对这个问题的答案感兴趣。
—
米卡·佐尔图
—
通配符