如何在Amazon EC2实例上增加ulimit?

dmo*_*lus 30 amazon-ec2 ulimit

SSH进入运行Amazon Linux AMI的EC2实例后,我试过:

ulimit -n 20000
Run Code Online (Sandbox Code Playgroud)

...并收到以下错误:

-bash: ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

但是,shell允许我减少此数字,仅适用于当前会话.

无论如何都要增加 EC2实例的ulimit (永久)

Vic*_*ari 69

实际上,通过ulimit命令更改值仅适用于当前的shell会话.如果要永久设置新限制,则必须编辑/etc/security/limits.conf文件并设置硬限制和软限制.这是一个例子:

# <domain> <type> <item>  <value>
    *       soft  nofile  20000
    *       hard  nofile  20000
Run Code Online (Sandbox Code Playgroud)

保存文件,注销,再次登录并通过ulimit -n命令测试配置.希望能帮助到你.

PS 1:记住以下几点:

  • 软限制:内核对相应资源强制执行的值.
  • 硬限制:作为软限制的上限.

PS 2:其他文件/etc/security/limits.d/可能会影响配置的内容limits.conf.

  • Re - PS2 - 如果您希望更改这些值,建议在limit.d中添加一个文件,因为它们具有优先权.不要直接编辑limits.conf是我的建议. (4认同)
  • 请注意,我已经通过这种方式锁定了自己,无法通过 SSH 连接到 EC2 实例。我几乎将所有内容都设置为无限制,所以也许这太激进了。如果发生这种情况,您始终可以在启动时使用用户数据功能删除“/etc/security/limits.d/whatever”文件。 (2认同)