设置 nproc 限制的示例

下面是一些使用文件 /etc/security/limits.conf 文件和 /etc/security/limits.d/90-nproc.conf(RHEL5. RHEL6)、/etc/security/limits 设置 nproc 值的示例。
d/20-nproc.conf (RHEL7):

  1. 在下面的示例中,nproc 限制设置为 2047,因为在limits.conf 中有2047 的硬限制。
# cat /etc/security/limits.conf | grep nproc | grep -v ^#
test hard nproc 2047
test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^#
* soft nproc 1024
root soft nproc unlimited
test soft nproc 10023
# ulimit -u
2047
  1. 这里使用1022,因为最后一个条目是“test soft nproc 1022”,最大硬限制是“1025”。
# cat /etc/security/limits.conf | grep nproc | grep -v ^#
test hard nproc 2048
test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^#
* soft nproc 1024
* hard nproc 1025
root soft nproc unlimited
test hard nproc 1025
test soft nproc 1022
# ulimit -u
1022
  1. 这里使用1025是因为设置了“test hard nproc 1025”,使用“test soft nproc 1066”是因为软限制超过了硬限制。
# cat /etc/security/limits.conf | grep nproc | grep -v ^#
test hard nproc 1001
test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^#
* soft nproc 1024
* hard nproc 1025
root soft nproc unlimited
test hard nproc 1025
test soft nproc 1066
# ulimit -u
1025
  1. 这里使用1066是因为最后一项是“test soft nproc 1066”,1066没有超过硬限制。
# cat /etc/security/limits.conf | grep nproc | grep -v ^#
test hard nproc 1001
test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^#
* soft nproc 1024
* hard nproc 1025
root soft nproc unlimited
test hard nproc 1100
test soft nproc 1066
# ulimit -u
1066

查看当前的 nproc 软/硬限制

Red Hat Enterprise Linux 系统使用两种类型的值来定义限制: soft 和 hard 。
不同之处在于“软”限制可以调整到“硬”限制,而“硬”限制只能减少,这是用户可能拥有的最大资源限制。

每当用户运行“ulimit -n”命令时,都会显示“软”限制。
因此,如果 '/etc/security/limits.conf' 文件设置了硬值,则默认情况下不会显示它。

要查看软限制,请使用以下命令:

# ulimit -u -S

同样,要查看硬限制,请使用以下命令:

# ulimit -u -H
如何在 CentOS/RHEL 5,6,7 中设置 nproc(硬和软)值

本文说明了 Linux 系统管理员如何限制操作系统的每个用户允许的进程数。
有两个地方可以配置允许的最大进程数 (nproc)。

  • /etc/security/limits.conf
  • /etc/security/limits.d/90-nproc.conf ( CentOS/RHEL 5,6 ) 和 /etc/security/limits.d/20-nproc.conf ( CentOS/RHEL 7 )

来自 pam_limits 的手册页

之路 on it Road.com

如何设置 nproc(硬和软)限制

  1. 临时设置软nproc限制
    “软”限制可以根据“硬”限制进行调整,其中 N 小于或者等于“硬”限制。
# ulimit -n N

例如:

# ulimit -n 1024

上述值不是永久的,并且不会在重新登录后持续存在。
我们可以在用户 bash 配置文件中输入上述命令,以便在用户每次登录时设置限制。

# vim ~/.bash_profile
ulimit -n 1024
  1. 永久设置 nproc 硬/软限制
    要将 nproc 限制设置为无限系统范围,文件 /etc/security/limits.d/90-nproc.conf(RHEL5. RHEL6)、/etc/security/limits.d/20-nproc.conf(RHEL7)应该读。
    默认情况下,规则是从 /etc/security/limits.conf 文件中读取的。

此外,我们可以在 /etc/security/limits.d 目录中专门为某些应用程序或者服务创建单独的配置文件。

用户进程的默认限制在文件 /etc/security/limits.d/90-nproc.conf(RHEL5. RHEL6)、/etc/security/limits.d/20-nproc.conf(RHEL7)中定义,以防止恶意拒绝服务攻击,例如分叉炸弹。

要设置 nproc 的硬/软限制,请使用以下语法。

# vi /etc/security/limits.conf
[domain] [type] [item] [value]

其中:
[domain] 可以是用户名、组名或者通配符条目。

[type] 表示限制的类型,它可以有以下值:

  • soft :这是一个可以由用户更改的软限制
  • hard :这是由超级用户设置并由内核强制执行的软限制上限

[item] 是要为其设置限制的资源。

日期:2020-09-17 00:12:39 来源:oir作者:oir