我知道这两种机制(我们称之为A和B)限制了进程的资源。
我想知道这两个人的合作情况。
如果A限制了进程的资源,那么当B也限制相同的资源时会发生什么呢?
发布于 2016-08-15 21:55:29
所有限制都是独立适用的。当进程提出请求时,请求将被拒绝。无论限制是针对cgroup、每个进程还是针对每个用户,这都是有效的。
由于cgroup设置了每个进程组的限制,而setr极限设置了每个用户或每个进程的限制,所以这些机制通常不是多余的。给定的请求有可能同时超过cgroup和setr极限,或者仅超过其中的一个。
请记住,所有限制都是最大允许值,而不是保证的最小值。例如,如果每个进程的内存限制为1GB,那么如果系统中没有更多可用内存,具有200 in内存的进程仍可能被拒绝分配100 in内存的请求,而不管是否有任何适用的限制。如果同时应用了setr极限和cgroup限制,那么至少有三个可以超过的最大值:setr极限最大值、cgroup最大值和当前可用的资源最大值。
发布于 2016-08-12 10:42:49
ulimit shell命令(可执行程序)是围绕setrlimit系统调用(内核提供的函数)的包装器,包含限制信息的底层数据结构称为rlimit。
ulimit shell命令控制对外壳及其启动的进程可用资源的软和硬限制。
getrlimit()和setrlimit()系统分别调用get和设置资源限制,其中经过合并的软和硬限制由rlimit结构定义。
有关更多信息,请使用:man 1 ulimit和man 2 setrlimit
组(控制组)允许您在运行于系统上的用户定义的任务组(进程)之间分配资源--例如CPU时间、系统内存、网络带宽或这些资源的组合。
D.M. ulimit与每个进程设置或任何与节流速度相关的设置无关.这就是cgroups内核扩展的能力和用途。要提到它提供的其他特性之一,我们可以说它甚至允许定义设置的层次结构。
注:我建议你阅读这篇文章,以快速了解ulimit/setrlimit。对于cgroups (控制组),我建议您阅读红帽正式文件。
https://unix.stackexchange.com/questions/302938
复制相似问题