问题描述
我遇到了webapp
用户在AWS Elastic Beanstalk上的服务器进程(产生goroutine)的打开文件限制。
在我的本地环境中,开放的FD限制为8k,我能够很好地处理此问题,但是我无法提高AWS Elastic Beanstalk上webapp
EC2用户的限制。 / p>
按照在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
文件夹中的文件,可以在部署过程中的较早位置执行此实例的硬/软限制,如此处的示例所示:{{3 }},但这对webapp用户启动的我的应用程序没有任何影响。
谢谢。
编辑:我意识到我的最后一个问题并不明显。由于似乎webapp
用户没有更改此类限制的权限,如何在Elastic Beanstalk上实现此更改?
解决方法
通过遵循here
提出的概念,我能够解决此问题所以我的server.sh
如下:
#!/bin/bash
ulimit -Sn unlimited
./bin/server
exit 0
现在,我的Web进程打开的文件过多没有任何问题。