最简单的方法是在不下载映像的情况下提供内存,磁盘和CPU隔离

时间:2017-10-01 05:06:57

标签: cgroups

我熟悉Docker,Rkt和LXD,但如果我没有能力安装所有这些工具,那么为特定进程提供CPU,内存和磁盘隔离的基本机制是什么?

CPU - 我想说这个过程只能使用两个插槽

内存 - 我不希望此过程使用超过10GB的内存

磁盘 - 我不希望该进程使用超过100GB的磁盘,并且具有此进程未创建的文件的可见性(不应该列出)

我认为安装Docker,Rkt和what-not对于我想要完成的基本操作非常重要的解决方案

cgroups是我应该利用的基础API,以获得我需要的东西吗?如果是这样,是否有一本好书可以了解CGroups

我在EC2上运行 - RHEL和Ubuntu。

1 个答案:

答案 0 :(得分:0)

参见man page for cgroups(7)的介绍,cgroup接口的完整文档在linux内核中保存:

最重要的是,在带有systemd和cgroup v2接口的发行版上,cgroup features should be used via systemd and not directly。另请参见systemd.resource-control的手册页。

有关分发特定信息,请参阅:

快速回答您的问题

  

我想说这个过程只能使用两个插座

这可以通过cgroup v1的cpuset控制器完成(包括RHEL 6RHEL 7)。

  

我不希望此过程使用超过10GB的内存

请参阅cgroup v1接口的内存控制器或systemd资源控制接口的MemoryLimit

  

我不希望这个过程使用超过100GB的磁盘

这超出了cgroups控制范围,而是使用磁盘配额。

  

具有此过程未创建的文件的可见性(不应列出)

这不是cgroups功能,使用文件系统访问权限,文件系统命名空间或PrivateTmp systemd service option,具体取决于您的用例。