AWS + Docker + Puma + Rails + S3,上传几个小时后上传中断

时间:2016-06-17 09:01:27

标签: ruby-on-rails amazon-web-services amazon-s3 docker puma

我有一个完全正常工作的rails应用程序,我最近迁移到AWS的ECS。

我的意思是在第一个小时左右,我没有看到任何问题,然后使用雾和载波波浪宝石上传只停止,没有任何日志。

此刻我无法回到我的服务器,我将这个应用程序直接安装在由haproxy loadbalancer支持的NGINX + Passanger模块服务的CentOS服务器上。

通过这种设置,我可以运行几个月而无需重启,一切正常。

现在我使用相同的代码,将其移动到具有Alpine linux基础映像的docker容器(使用3.3和3.4测试),在EC2实例上运行Puma web server gem。当我启动它时,一切正常,应用程序感觉更快,但经过一段时间(并非总是在同一时期),载波浪+雾上传到S3不再起作用(也不受上传文件数量的影响。我可以上传1000它工作了几个小时,或者我只上传了一个,它也只工作了几个小时)。

我没有收到任何错误消息,我没有在应用程序中获得任何日志,我看到的只是加载的GIF,它永远不会消失。

我已经做了很多测试,结果相同。此刻,我正计划从Puma迁移到不同的Web服务器,从Alpine linux到CentOS,看看迁移到哪个阶段(希望它会发生)。

另外我很抱歉,但是现在我不会分享任何代码,因为我知道代码工作正常,但如果需要什么,我会很乐意将它粘贴到这里。

我只是希望有人能解决同样的问题,因为我无法在互联网上找到任何内容。

谢谢大家

1 个答案:

答案 0 :(得分:0)

问题在于与应用程序共享内存的缓存。因此,当应用程序运行并且我开始同时上传多个图像并且amazon任务限制为512MB时,这在上载期间开始失败。将任务的大小增加到1.5GB并在至少具有2G内存的小实例上运行它修复了该问题。