10

我正在尝试使用 cgroups 来限制 CPU 使用率。我正在使用本指南 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html

我的 /etc/cgconfig.conf 文件如下

mount {
cpu     = /mnt/cgroup/cpu,cpuacct;
cpuacct = /mnt/cgroup/cpu,cpuacct;
}

group wheel {
    cpu {
            cpu.shares="800";
    }
    cpuacct {
            cpuacct.usage="0";
    }
}
 group test1 {
    cpu {
            cpu.shares="200";
    }
    cpuacct {
            cpuacct.usage="0";
    }
}

我的 cgrules.conf 如下

@wheel cpu,cpuacct wheel
@test1 cpu,cpuacct test1

尽管当我尝试运行时:

dd if=/dev/zero of=/dev/null bs=1024k

我看到用户 100% 的 cpu 使用率属于组 wheel 和 test1

我已经检查了服务 cgconfig 状态的服务并且已启动

Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; disabled)
Active: active (exited) since Mon 2015-03-02 17:29:19 EET; 7min ago
Process: 1240 ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e   (code=exited, status=3)
Process: 56536 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s         1664 (code=exited, status=0/SUCCESS)
Main PID: 56536 (code=exited, status=0/SUCCESS)

谁能告诉我我做错了什么?非常感谢

4

1 回答 1

21

cpu cgroup 是工作守恒,即。如果没有竞争,任务不会停止使用 cpu。如果您想对任务可以使用的 CPU 数量进行硬性限制,请尝试设置cpu.cfs_quota_uscpu.cfs_period_us.

在此处查看文档。

于 2015-03-02T23:27:58.550 回答