2015-09-05 73 views
1

我今天推出了一个应用程序。大约10个小时后,一旦有足够的人注册并使用该应用程序,应用程序就会停止。如何解决Heroku上的内存配额超过和请求超时错误? Rails Web API

我得到3种错误:

H12:请求超时 R14:内存超出配额 H13:连接关闭无响应

我在最后4小时有361个内存错误,以及最近90分钟内的674次请求超时。

我真的很不确定如何解决服务器端问题。我的Rails JSON Web API现在在Heroku上。

解决这些问题的最佳方法是什么?

+0

你正在使用什么样的测功机?随着免费的你可以很容易地遇到这类问题。对于数据库,你可以检查[索引用法](http://www.postgresql.org/docs/9.3/static/indexes-examine.html) –

+0

@Dmitry我有两个Standard-1x Dynos运行。我也有Standard-0 postgres数据库设置,所以1GB RAM,64GB存储,120个连接。 –

回答

0

您有几种选择:

  1. 由于您的应用程序运行内存,一个策略是少跑过程每赛道。在您的网络服务器配置(Procfile)中,您如何运行您的应用程序?单线程?多?如果有多个,请尝试降低该数字。这将使用更少的内存,并且会使您的过程更加稳定。

  2. 要处理'没有响应的连接关闭'错误,您可能需要添加更多的dynos来处理您的流量增加。发生什么情况是您的请求要么花费很长时间才能完成(> 30秒),要么由于其他问题(内存/ CPU等)而导致您的应用程序未完成请求处理。

我的直觉告诉我,每DYNO降低你的进程并发,你可能会得到你需要解决所有这些问题,在一次的性能优势。