我试图了解这些限制是如何工作的。 但是我无法弄清楚,为什么在存在硬限制时首先需要软限制。 我经历过的大多数网站都在谈论它们是什么,但没有提到它们是如何运作的。
在流程的背景下,任何人都可以解释它们是如何工作的吗?
谢谢。
答案 0 :(得分:0)
让我们考虑一个用户abc
,其进程数设置为
abc soft nproc 1024
abc hard nproc 20000
当此用户登录时,用户具有应用的有效软限制,即abc
最多可以运行1024个进程。
当此限制用完时,除非软限制进一步增加,否则用户将无法再运行任何进程。
此时,用户可以选择性地增加(但不应该大于硬限制)过程限制。
如果用户尝试将其增加到21000
(高于20000
的硬限制)
ulimit -S -u 21000
-bash: ulimit: max user processes: cannot modify limit: Operation not permitted
但是接受将其设置为小于或等于硬限制的任何值。只能通过root
来增加硬限制。
我们不能只使用硬限制吗?
是的,我们可以。
abc soft nproc 20000
abc hard nproc 20000
将软限制设置为硬限制将使硬限制成为abc
用户的默认限制。
但不建议这样做,因为它可能导致单个用户耗尽大部分进程(如果限制设置相对较高),可以完全生成(pid_max
)。