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