在通过 SSH 连接到运行 Amazon Linux AMI 的 EC2 实例后,我尝试了:
ulimit -n 20000
...并得到以下错误:
-bash: ulimit: open files: cannot modify limit: Operation not permitted
但是,shell 允许我减少这个数字,仅适用于当前会话。
无论如何增加EC2实例的ulimit (永久)?
在通过 SSH 连接到运行 Amazon Linux AMI 的 EC2 实例后,我尝试了:
ulimit -n 20000
...并得到以下错误:
-bash: ulimit: open files: cannot modify limit: Operation not permitted
但是,shell 允许我减少这个数字,仅适用于当前会话。
无论如何增加EC2实例的ulimit (永久)?
实际上,通过ulimit
命令更改值仅适用于当前 shell 会话。如果要永久设置新限制,则必须编辑/etc/security/limits.conf
文件并设置硬限制和软限制。这是一个例子:
# <domain> <type> <item> <value>
* soft nofile 20000
* hard nofile 20000
保存文件,注销,再次登录,通过ulimit -n
命令测试配置。希望能帮助到你。
PS 1:请记住以下几点:
PS 2: 中的其他文件/etc/security/limits.d/
可能会影响limits.conf
.
谢谢你的回答。对我来说,仅仅更新 /etc/security/limits.conf 是不够的。只有“打开的文件” ulimit -n 得到更新,而 nproc 没有得到更新。更新 /etc/security/limits.d/whateverfile 后,nproc "ulimit -u" 也得到了更新。
脚步:
sudo vi /etc/security/limits.d/whateverfile
sudo vi /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
sudo reboot
PS我无法将其添加为评论,因此不得不发布作为答案。
我没有足够的代表点来发表评论……很抱歉有新的回复,但也许这会让某人不会浪费一个小时。
Viccari 的回答终于为我解决了这个头疼的问题。每个其他来源都会告诉您编辑 limits.conf 文件,如果这不起作用,请添加
session required pam_limits.so
到/etc/pam.d/common-session
文件
不要这样做!
我正在运行一个 Ubuntu 18.04.5 EC2 实例,这使我完全无法使用 SSH。我可以登录,但是当它要让我进入提示时,它就断开了我的连接(我什至看到了所有的欢迎消息和内容)。详细显示这是最后一个错误:
fd 1 is not O_NONBLOCK
我找不到这意味着什么的答案。因此,在关闭实例后,等待大约一个小时对卷进行快照,然后将其挂载到另一个正在运行的实例上,我删除了对common-session
文件的编辑并 bam,SSH 登录再次工作。
对我有用的修复是在文件/etc/security/limits.d/
夹中查找文件,然后编辑这些文件。
(不,我不需要重新启动来获得新的限制,只需注销并重新登录)