使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何在 Amazon Linux 操作系统中设置 ulimit 值?

2 分钟阅读
0

我想在 Amazon Linux 中设置 ulimit 值以增加系统资源的配额。

解决方案

**注意:**最佳做法是保留实例和数据的备份。在进行故障排除之前,请创建 Amazon Elastic Block Store (EBS) 支持的亚马逊机器映像 (AMI),或创建 Amazon EBS 卷的快照

要设置 ulimit 值,请运行 ulimit 命令或修改您的系统配置文件。要管理个人用户的系统资源配额,请运行 ulimit 命令。

ulimit 命令用于控制以下系统配额:

  • nofile: 打开的文件描述符的最大数量
  • nproc: 最大进程数
  • stack: 堆栈大小
  • core: 核心文件大小
  • memlock: 最大锁定内存地址空间

系统配额有两种类型:硬配额和软配额。软配额是系统强制执行的当前配额。使用软配额增加或减少配额,直到达到硬配额。硬配额是您可以将软配额增加到的最大值。只有根用户可以增加硬配额。

在设置新的 ulimit 值之前,运行以下命令来检查会话的资源配额:

ulimit -a
real-time non-blocking time (microseconds, -R) unlimited
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30446
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

**注意:**要查询硬配额,请将 ulimit 命令中的 -a 替换为 -Ha

设置临时 ulimit 值

要为当前 Shell 会话设置临时 ulimit 值,请运行 ulimit 命令。使用 -S 选项设置软配额,使用 -H 选项设置硬配额。例如,要将打开的最大文件数更改为 10000,请运行以下命令:

ulimit -Sn 10000
ulimit -Hn 10000

**注意:**将 10000 替换为要将打开的最大文件数更改为的数字。

如果您是根用户,可以运行以下命令将 ulimit nproc 值临时设置为 unlimited(无限制):

ulimit -u unlimited

设置永久的 ulimit 值

要设置重启后仍然有效的永久 ulimit 值,请修改 /etc/security/limits.conf 文件。

最佳做法是在 /etc/security/ 文件夹中创建文件名为 limits.conf.bk 的 limits.conf 备份文件。要创建备份,请运行以下命令:

cp /etc/security/limits.conf /etc/security/limits.conf.bk

使用文本编辑器打开该文件,然后将以下行添加到 /etc/security/limits.conf 文件中:

username soft nofile 65536
username hard nofile 65536
username soft nproc 4096
username hard nproc 8192

**注意:**将 username 替换为您的用户名,将 65536 替换为打开的最大文件数,将 40968192 替换为最大用户进程数。

要应用所有用户的编号,请使用 *

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 8192

要应用更改,请注销,然后重新登录。

要检查用户的 nproc 打开文件配额,请运行以下命令:

无限制:

ulimit -u

软配额:

ulimit -Sn

硬配额:

ulimit -Hn

要将 nproc 配额设置为 unlimited(无限制)作为永久更新 /etc/security/limits.conf,请使用以下配置:

username soft nproc unlimited
username hard nproc unlimited

**注意:**将 username 替换为您的用户名。

ulimit 值的最佳实践

设置 ulimit 值时,请使用以下最佳实践:

  • 为应用程序和进程的特定要求设置 ulimit 值。
  • 监控系统的资源使用情况,并根据需要调整 ulimit 值。
  • 使用新的 ulimit 值测试您的应用程序和进程,以确保它们正常运行。
  • 检查是设置系统范围的用户配额还是特定的用户配额,然后调整您的配置。

**重要事项:**如果您设置了极高的值或设置了 unlimited(无限制)值,则可能会遇到安全性和稳定性问题。

相关信息

Red Hat Enterprise Linux (RHEL) 网站上的如何设置 ulimit 值

AWS 官方
AWS 官方已更新 3 个月前