给予:
如何将CPU提供给流程?
发布于 2022-07-31 21:47:36
在您的情况下,cgroup没有任何挑战。这个单线程应用程序将使用1核心在100%。Cgroup是一个解决“我们有1000个不同权重的进程和10个内核,我们可以使用它们来运行所有进程,让它们都排队来领导他们的重量”的问题的系统。
要理解cgroups配额,只需想象它的“点”。Linux内核不在乎应用程序如何使用它:
因此,在像https://www.golinuxcloud.com/cgroup-limit-cpu-usage-linux/这样的例子中,你的应用程序在同一组中获得256个/(1024+256+512+256)的"CPU时间“,你只能在一个CPU上使用它:
更喜欢使用内部调度程序设置,以防止多线程繁重任务中的节流。例如,uber的automaxprocs设置golang的GOMAXPROCS等于提供的cgroup分数以防止节流。
见:
https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt
https://serverfault.com/questions/1105778
复制相似问题