1

我在这里和那里看到了关于在使用 Node.js 时在 Linux 中设置 ulimit -n(文件句柄)的少量讨论。大多数 linux 发行版的默认值是 1024。我在任何地方都找不到推荐。通常对于 apache,您会将其设置得相当高。对此有什么想法吗?开始时很容易将其设置为高,但不确定是否需要。我们正在远程使用 Mongo,而不是在本地打开很多文件。

4

1 回答 1

3

我从 AWS 支持收到了这个答案,它有效:

至于容器,每个 beanstalk 实例都是一个带有 beanstalk 软件的容器,它会在启动时下载您的应用程序,并根据环境类型和应用程序的 .ebextensions 文件夹修改系统参数。

因此,为了实现我的建议,您需要在您的应用程序上创建一个 .ebextensions,其中包含我提到的内容。

回顾一下,请在应用程序的 .ebextensions 文件夹中创建一个名为 app.config 的文件,其中包含以下(更新的)内容:

files:
 "/etc/security/limits.conf":
     mode: "00644"
     owner: "root"
     group: "root"
     content: |
         *                soft    nofile          20000
         *                hard    nofile          20000

commands:
 container_commands:
      command: "ulimit -HSn 20000; service httpd restart;"

添加此文件后,保存项目并进行新部署。

至于ssh,如果你想运行一个有更多限制的用户,你可以在登录后运行以下命令:sudo su -c "ulimit -HSn 20000; su - ec2-user"

而当前的会议将有你如此渴望的限制。

供参考: http ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-services https://unix.stackexchange.com/questions/29577/ ulimit-difference-between-hard-and-soft-limits http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

于 2013-11-21T16:46:17.077 回答