ruby-on-rails - SSH 和 -bash : fork: Cannot allocate memory Ubuntu , rails、Passenger、redis、sidekiq

标签 ruby-on-rails linux nginx swap bad-gateway

我正在使用 t2.micro 实例在 Amazon AWS 中运行带有 passenger 的 Rails 应用程序(开发服务器)。但是我不断收到 -bash: fork: Cannot allocate memory 错误。

我在其上运行 50 sidekiq 并发的 redis 服务器。通常网站运行良好,但当我同时启动 2-3 个 sidekiq 进程时,请执行一些批处理。该网站需要时间来重定向并最终崩溃

502 Bad Gateway 
nginx/1.10.0

然后我必须每次重新启动 nginx 才能让网站再次运行。这是我的开发服务器,所以我不想投入更多的财务资源来升级到 t2.small(截至目前,这是我们最后的选择),因为这是开发服务器,将在 15 天内使用两次。有什么办法可以解决这个问题吗?以前我有与生产相同的 120 并发,但后来我改为 50。这有点帮助,但仍然存在内存问题。

这里有一些htop的统计数据

enter image description here

此统计数据是在服务器空闲时得出的。但是,当我使用 sidekiq 运行少量任务时,它会因 502 而崩溃。

我检查了几个 post建议交换内存但不确定这是否适用于 t2.micro。这对于此服务器设置是否可取。在图片中,您可以看到我不交换内存。可以添加交换内存来解决这个问题吗?或者还有其他更好的选择。

最佳答案

您的服务器内存不足,要修复它:

然后再试一次

关于ruby-on-rails - SSH 和 -bash : fork: Cannot allocate memory Ubuntu , rails、Passenger、redis、sidekiq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37806186/

相关文章:

ruby-on-rails - unicorn 超时处理

linux - 文件系统操作真的 "flushed"

ruby-on-rails - EC2 中的 SSL 缓慢

c# - asp.net core 2.0 无法发布到数据库

ruby-on-rails - 在 ActiveAdmin 中自定义显示页面

ruby-on-rails - Rails mongodb - 在字段 :date 中设置今天的日期

ruby-on-rails - Payola 问题 : undefined method `amount' for nil:NilClass

linux - 来自通用时钟框架的不同时钟速率?

linux - 从 Ant tar 任务打包的 .tar.gz 中提取时对包含非拉丁字符的文件名进行编码

nginx - 默认情况下无法使用Nginx打开index.php