4

我想在 Linux 上使用 ulimit 命令限制通过 bash 启动的进程使用的内存。我想知道使用什么操作系统机制来支持 ulimit。特别是,它是基于 cgroups 的吗?

4

3 回答 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 回答