1

我试图了解这些限制是如何工作的。但我无法弄清楚,为什么在存在硬限制时首先需要软限制。我浏览过的大多数网站都在谈论它们是什么,但没有提到它们是如何工作的。

在流程的背景下,谁能解释一下这些是如何工作的?

谢谢你。

4

1 回答 1

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)。

于 2017-03-06T12:15:05.430 回答