我在共享系统上设置了cgroup,以将cpu访问限制在25%以内,但它似乎不起作用。以下是以下步骤:
/etc/cgrules.conf:@guest_users cpu lowcpu中在上面的记录中,@guest_users是我想限制cpu使用的Linux组,cpu是控制器,lowcpu是配置cgroup的句柄,如下一步所示。
/etc/cgconfig.conf添加以下行:组lowcpu{ cpu{ cpu.shares=256;}cgred和cgconfig服务启用并重新启动systemctl服务。我正在运行CentOS系统7.5,内核3.10,有32个内核。
我确实看到创建了dir /sys/fs/cgroup/cpu/lowcpu,文件cpu.shares中有一个第256行。
尽管如此,我发现在top中,guest_users组中的用户仍然能够重载cpu。对于调试问题的可能原因和途径,有什么建议吗?
发布于 2019-04-20 14:24:24
这个在堆栈过流上的回答很有帮助。我发现,只有在CPU和系统进程之间发生争用时,内核才会启动cpu.shares规则。如果没有争用,则cgroup可以使用所有CPU资源。在cpu部分中添加下面的内联代码可以达到此目的:
cpu.cfs_period_us=1000000;
cpu.cfs_quota_us=800000;上面这些行的效果是,cpu的每一秒将给cgroup进程一个0.8秒的切片。
要验证cgroup是否已创建并处于活动状态,命令systemd-cgls和systemd-cgtop是有用的。
https://unix.stackexchange.com/questions/512880
复制相似问题