Answers:
cgroups有多种用途。在系统管理中,最重要的一项可能是限制资源-这里的经典示例是cpu访问。如果为例如创建一个组,sshd
并为其分配一些不可忽略的CPU时间份额(与其他组或所有未排序进程的默认组相比),即使在机器运行时,也可以确保登录一个CPU密集型任务。
更有趣的是,如果为该“远程访问”进程提供比其他进程更多的CPU份额,则您几乎可以立即登录(因为ssh守护程序将优先于其余正在运行的进程),而又不会受到影响。机器的整体计算能力,因为仅根据需要分配资源。您通常希望将其与I / O(包括网络)优先级一起进行。但是,正如John在下面的评论中正确指出的那样,一个人不想随意地做这些事情(因为它可能以一种意想不到的方式返回)。要记住的重要一点是,默认情况下,这些组是继承的,即,一个组不想从这样的ssh会话中启动内存/ CPU。为此,有一些机制可以在启动cgroup时将其分配给它们。
另一个用途是将进程彼此隔离-结合最近Linux内核中的其他功能(名称空间隔离),它们用于创建OS级虚拟化,如LXC(Linux容器)。
除此之外,您还可以执行各种记帐和控制工作(冻结某些进程组,将它们分配给特定的CPU内核等)。
如果您需要更多信息,则此处的两个链接应该是一个合理的起点。您可能还需要检查Documentation/cgroups
Linux内核源代码树中的目录。
systemd
,该分发出于自己的目的使用cgroups-服务的systemd单元文件可能会提供一些关于合理的线索。但是最后,系统管理员必须学习困难的方法,这实际上不是“好主意(TM)”。
cgroup
,您需要先写入可能需要挂载的伪文件系统。今天,在大多数情况下,init系统会为您执行此操作,并且通常已经以某种方式使用了cgroup。唯一的答案是阅读文档:内核docs,OpenRC @ Gentoo,systemd @ freedesktop。