我想在Linux上使用ulimit命令限制通过bash启动的进程使用的内存。我想知道什么操作系统机制用于支持ulimit。特别是它是基于cgroups吗?
答案 0 :(得分:2)
获取和设置限制的Linux API方法是getrlimit(2) and setrlimit(2)
在流程空间内管理限制。子进程将继承其父进程的限制。限制是POSIX标准的一部分,因此所有符合POSIX标准的操作系统都支持它们(Linux,BSD,OSX)。
cgroups是特定于Linux的,在Linux安装中甚至不需要。我不确定是否可以使用cgroup管理限制,但这肯定是非标准的。
答案 1 :(得分:2)
以下是一个很好的概述:
要查看的几个手册页包括:
答案 2 :(得分:0)
我使用softlimit,这是DJB的daemontools
包的一部分。
通过指定类似softlimit -m 1048576 nautilus
之类的东西,程序(nautilus)永远不会超过1MiB的内存使用量(在这种情况下也会导致它立即失败)。