首页 > 解决方案 > 为 webapp 用户增加弹性 beanstalk EC2 实例的打开文件限制

问题描述

webapp在 AWS Elastic Beanstalk 上遇到了服务器进程(生成 goroutine)的用户打开文件限制。

在我的本地环境中,开放 FD 限制为 8k,我能够很好地处理这个问题,但我无法增加webappAWS Elastic Beanstalk 上 EC2 用户的限制。

根据 AWS Elastic Beanstalk 上的 Golang 开发说明,我有一个procfile流程web,如下所示:

web: bin/server.sh

并且server.sh是:

#!/bin/bash

ulimit -n 32768
./bin/server
exit 0

我在标准输出日志中得到错误:

web: bin/server.sh: line 3: ulimit: open files: cannot modify limit: Operation not permitted

我已经能够通过在部署过程的早期使用文件.ebextensions夹中的文件来增加实例的硬/软限制,如下面的示例所示:https ://github.com/awsdocs/elastic -beanstalk-samples/blob/main/configuration-files/aws-provided/instance-configuration/java-increase-file-descriptors.config但这对我由 webapp 用户启动的应用程序过程没有任何影响。

提前致谢。

编辑:我意识到我的最后一个问题并不明显。由于webapp用户似乎没有更改此类限制的权限,我如何在 Elastic Beanstalk 上实现此更改?

标签: amazon-web-servicesgoamazon-elastic-beanstalkulimit

解决方案


我能够通过遵循这里提出的概念来解决这个问题

所以我的server.sh样子:

#!/bin/bash

ulimit -Sn unlimited
./bin/server
exit 0

现在,我的 Web 进程没有太多打开文件的问题。


推荐阅读