我遇到了一个问题:
fork: Resource temporarily unavailable我知道,nproc是一个问题,有人建议增加nproc的软极限,而其他人则建议增加硬限制。
我应该增加哪一个?软限制不是只是警告用户,而硬限制是真正的限制最终?
发布于 2016-11-09 11:20:05
其实情况正好相反。
软极限值(S)实际上已经实现,即在使用中,可以将限制提高到相关的硬极限值(S)(假设您不是超级用户或没有CAP_SYS_RESOURCE功能)。
发布于 2016-11-09 12:19:41
把硬的和软的限制看作是强制性的和自由裁量的限制。硬限制由系统施加(通过适当的配置,例如limits.conf(5)),并且只能由超级用户(即根用户)来增加,而用户可以在相应的硬限制的范围内自由裁量软限制。
来自getrlimits(2)手册页面:
软限制是内核为相应资源强制的值。硬限制充当软限制的上限:非特权进程只能将其软限制设置为从0到硬限制范围内的值,并且(不可逆转地)降低其硬限制。
因此,如果达到资源限制,则检查是否可以增加相应的软限制;如果没有,则需要增加硬限制。
的回应
没有这样的东西,只有硬限度。限制由setrlimit(2)设置,它指的是struct rlimit。这反过来又有软和硬限制的成员(rlim_cur和rlim_max,resp.)。如果没有显式定义软限制,那么它默认为某个值;很可能是相应的硬限制,但这取决于设置限制的过程。(setrlimits(2)拒绝rlim_cur超过rlim_max,因此RLIM_INFINITY通常不是rlim_cur的有效默认值。)
https://unix.stackexchange.com/questions/322068
复制相似问题