【问题标题】:Weird cgroups behaviour ( cpu shares奇怪的 cgroups 行为(cpu 共享
【发布时间】:2013-11-29 07:34:22
【问题描述】:

我有一个 cpu 饥饿的进程 A,它占用了过多的 cpu 负载(100%),这导致进程 B 没有足够的周期...B 与 Web 响应有关...所以当我做了一个基准测试时两个进程都没有 cgroups 的 web 响应,结果是 5 秒...现在当我创建两个组并给两个进程相同数量的 cpu.shares 时,所花费的时间增加到 15 秒。

我得到了很好的结果,cpu 与进程的高份额比率必须给予更多优先级......但真的很好奇默认值下的这种奇怪行为......

为什么响应时间会随着两个组的默认共享值 1024 增加,不应该和没有 cgroups 一样吗???

现在当我将两个进程放在同一个组中时,响应又回到 5 秒...

是不是跟调度器有关系...

【问题讨论】:

  • 我认为这个问题可能是超级用户或服务器故障...您是否为进程 A 和 B 编写了代码?
  • 我没有为这两个进程编写代码...而是我正在实现 cgroups 以更好地管理资源。

标签: scheduler cgroups


【解决方案1】:

[如果你有 cpuacct cgroup 与 cpu 一起挂载,你可以查看使用数字来检查两个 cgroup 是否获得相等的份额。 ]

我的猜测是您的设置有一些在 cgroup 之外运行的进程。当您将某些进程移到 cgroup 下时,仍在外部的进程将获得比两个 cgroup 更高的 CPU 份额(总计)。 (每个顶级进程获得相当于 1024 个共享)。为了实现你想要的,所有进程都应该在某个 cgroup 下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2021-03-05
    • 2013-04-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多