Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 已超过Heroku内存配额_Ruby On Rails_Heroku_Nginx_Newrelic - Fatal编程技术网

Ruby on rails 已超过Heroku内存配额

Ruby on rails 已超过Heroku内存配额,ruby-on-rails,heroku,nginx,newrelic,Ruby On Rails,Heroku,Nginx,Newrelic,我正在运行一个Heroku应用程序,每天可以获得10-20次点击,最多可以同时拥有2-3个用户 New Relic(服务器监控软件)最近开始给我发送以下电子邮件,每天发送几百次: "Memory quota exceeded: Heroku/yourapp" In context: 2015-04-13 13:14:09.645 155 <190>1 2015-04-13T13:14:08.997129+00:00 app web.1 - - Completed 200 OK in

我正在运行一个Heroku应用程序,每天可以获得10-20次点击,最多可以同时拥有2-3个用户

New Relic(服务器监控软件)最近开始给我发送以下电子邮件,每天发送几百次:

"Memory quota exceeded: Heroku/yourapp"

In context:
2015-04-13 13:14:09.645 155 <190>1 2015-04-13T13:14:08.997129+00:00 app web.1 - - Completed 200 OK in 11ms (Views: 8.4ms | ActiveRecord: 1.8ms)
2015-04-13 13:14:09.645 155 <190>1 2015-04-13T13:14:08.997133+00:00 app web.1 - - Completed 200 OK in 11ms (Views: 8.4ms | ActiveRecord: 1.8ms)
2015-04-13 13:14:09.721 155 <190>1 2015-04-13T13:14:08.997146+00:00 app web.1 - - Completed 200 OK in 11ms (Views: 8.4ms | ActiveRecord: 1.8ms)
2015-04-13 13:14:13.836 128 <45>1 2015-04-13T13:14:13.677706+00:00 heroku web.1 - - Process running mem=513M(100.4%)
2015-04-13 13:14:13.912 129 <45>1 2015-04-13T13:14:13.677878+00:00 heroku web.1 - - Error R14 (Memory quota exceeded)
2015-04-13 13:14:33.615 276 <158>1 2015-04-13T13:14:33.446005+00:00 heroku router - - at=info method=HEAD path="/" host=www.driverhunt.com request_id=3570e6f5-7a0f-464d-b50f-c71da525ea0c fwd="54.248.250.232" dyno=web.1 connect=1ms service=37ms status=200 bytes=823
2015-04-13 13:14:33.916 128 <45>1 2015-04-13T13:14:33.782614+00:00 heroku web.1 - - Process running mem=513M(100.4%)
2015-04-13 13:14:33.992 129 <45>1 2015-04-13T13:14:33.782787+00:00 heroku web.1 - - Error R14 (Memory quota exceeded)
2015-04-13 13:14:49.679 281 <158>1 2015-04-13T13:14:49.403609+00:00 heroku router - - at=info method=GET path="/jobs/49" host=www.driverhunt.com request_id=65854be8-4d50-4c20-9fff-31fcd701a301 fwd="180.76.5.28" dyno=web.1 connect=1ms service=31ms status=200 bytes=10347
2015-04-13 13:15:33.685 128 <45>1 2015-04-13T13:15:33.556253+00:00 heroku web.1 - - Process running mem=513M(100.4%)
2015-04-13 13:15:33.761 129 <45>1 2015-04-13T13:15:33.556253+00:00 heroku web.1 - - Error R14 (Memory quota exceeded)
“超出内存配额:Heroku/yourapp”
在这方面:
2015-04-13 13:14:09.6451551 2015-04-13T13:14:08.997129+00:00应用程序web.1--在11ms内完成200次OK(视图:8.4ms |活动记录:1.8ms)
2015-04-13 13:14:09.6451551 2015-04-13T13:14:08.997133+00:00应用程序web.1--在11ms内完成200 OK(视图:8.4ms |活动记录:1.8ms)
2015-04-13 13:14:09.721151 2015-04-13T13:14:08.997146+00:00应用程序web.1--在11ms内完成200 OK(视图:8.4ms |活动记录:1.8ms)
2015-04-13 13:14:13.8361281 2015-04-13T13:14:13.677706+00:00 heroku web.1--运行的进程内存=513M(100.4%)
2015-04-13 13:14:13.9121291 2015-04-13T13:14:13.677878+00:00 heroku web.1--错误R14(超出内存配额)
2015-04-13 13:14:33.615 276 1 2015-04-13T13:14:33.446005+00:00 heroku路由器--at=info method=HEAD path=“/”主机=www.driverhunt.com请求\u id=3570e6f5-7a0f-464d-b50f-c71da525ea0c fwd=“54.248.250.232”dyno=web.1连接=1ms服务=37ms状态=200字节=823
2015-04-13 13:14:33.9161281 2015-04-13T13:14:33.782614+00:00 heroku web.1--运行的进程内存=513M(100.4%)
2015-04-13 13:14:33.992 129 1 2015-04-13T13:14:33.782787+00:00 heroku web.1--错误R14(超出内存配额)
2015-04-13 13:14:49.679 281 1 2015-04-13T13:14:49.403609+00:00 heroku路由器--at=info method=GET path=“/jobs/49”host=www.driverhunt.com request_id=65854be8-4d50-4c20-9fff-31fcd701a301 fwd=“180.76.5.28”dyno=web.1 connect=1ms服务=31ms状态=200字节=10347
2015-04-13 13:15:33.6851281 2015-04-13T13:15:33.556253+00:00 heroku web.1--运行的进程内存=513M(100.4%)
2015-04-13 13:15:33.761 129 1 2015-04-13T13:15:33.556253+00:00 heroku web.1--错误R14(超出内存配额)
这有什么值得担心的吗?我应该已经开始升级Heroku了吗?看起来很早!我们只有大约200名注册用户


我目前仍在通过应用程序为我的静态资产提供服务。这可能是原因吗?如果是这样的话,是否有任何建议的阅读材料可以更智能地提供静态资产(将成本降至最低)呢?

如果不看代码,很难说出原因,但有几点需要记住:

  • 无论您有多少用户,您的应用程序都使用了超过512MB的内存——这意味着您的代码本身(以及任何依赖项)占用了相当多的空间
  • 如果您使用的是rails,请确保您只在线程上运行(如果可能的话)——每个rails实例都会占用相当多的内存,因此如果您在一个dyno上运行多个实例,这可能是罪魁祸首
  • 如果你正在做任何类型的大内存密集的东西(处理PDF文件,上传大于几兆字节的文件等等),你可能需要考虑重构你的方法——在DyNO上做这些事情不是最佳的。
  • 如果您正在泄漏内存,您的NewRelic图将显示随着时间的推移应用程序内存的增加。当心,你可能在什么地方漏了
我使用了以下构建包,即Nginx+Unicorn。通过使用Ngix作为前端web服务器,unicorn可以顺利完成其应用服务器的工作


谢谢!关于您的第一点,您如何知道我的应用程序使用的内存超过512mb?默认情况下,每个dyno都提供512mb的内存,并且您的错误日志显示您正在以513MB的内存(超过限制)运行。通读您先前发布的日志,并查看行尾。Heroku的错误报告真的是一流的=)