【发布时间】:2015-06-20 14:48:25
【问题描述】:
我的目标:为用户提供一种方法来限制给定进程 (C++) 的 CPU、内存等资源。
所以有人建议我使用 Cgroups,它看起来像是一个理想的实用程序。
做了一些研究后,我有一个担忧:
当我们利用 memory.limit_in_bytes 来限制给定进程的内存使用时,有没有办法处理进程中的内存不足异常?我看到控制组提供了一个名为“memory.oom_control”的参数,当启用该参数时,它会终止请求比允许更多内存的进程。禁用时,它只会暂停该过程。
我想要一种方法让进程知道它请求的内存比预期的要多,并且应该抛出内存不足异常。这是为了让进程优雅地退出。
cgroups 是否提供这种行为?
cgroup 是否也适用于所有版本的 linux?我主要对 RHEL 5+、CENTOS 6+ 和 ubuntu 12+ 机器感兴趣。
感谢任何帮助。
谢谢
【问题讨论】:
标签: c++ linux memory resource-management cgroups