我想在 Linux 上使用 ulimit 命令限制通过 bash 启动的进程使用的内存。我想知道使用什么操作系统机制来支持 ulimit。特别是,它是基于 cgroups 的吗?
问问题
4144 次
3 回答
2
“ulimit”基本上是不合时宜的。如果你需要资源,你不应该有任何开箱即用的真正限制,如果你想限制资源,有更好的方法来建立报价。
这是一个很好的概述:
要查看的几个手册页包括:
于 2012-10-18T01:16:56.423 回答
2
获取和设置限制的 Linux API 方法是getrlimit(2) 和 setrlimit(2)
限制在进程空间内进行管理。子进程将继承其父进程的限制。限制是 POSIX 标准的一部分,因此所有符合 POSIX 的操作系统都支持它们(Linux、BSD、OSX)。
cgroups 是 Linux 特定的,在 Linux 安装中甚至不需要。我不确定是否可以使用 cgroups 管理限制,但这样做肯定是不标准的。
于 2012-10-18T01:04:11.557 回答
0
我使用softlimit,它是 DJBdaemontools
软件包的一部分。
例如,通过指定类似的东西softlimit -m 1048576 nautilus
,程序(nautilus)永远不会超过 1MiB 的内存使用量(这也导致它在这种情况下立即失败)。
于 2012-10-18T01:25:02.460 回答