Linux中的硬限制和软限制

时间:2017-03-03 12:31:45

标签: yarn ulimit cgroups workload

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

在流程的背景下,任何人都可以解释它们是如何工作的吗?

谢谢。

1 个答案:

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