如何解决Heroku上的Memory Quota Exceed和Request Timeout错误? Rails Web API

时间:2015-09-05 03:15:16

标签: ruby-on-rails postgresql heroku

我今天推出了一款应用。大约10个小时后,一旦有足够的人注册并使用该应用程序,应用程序就停止了。

我有3种类型的错误:

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

我在过去4小时内有361个内存错误,在过去90分钟内有674个请求超时。

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

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

1 个答案:

答案 0 :(得分:0)

您有几个选择:

  1. 由于您的应用程序内存不足,因此一种策略是运行较少的每个dyno进程。在您的Web服务器配置(Procfile)中,您如何运行应用程序?单线程?多?如果是多个,请尝试降低该数字。这将使用更少的内存,并使您的流程更稳定。

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

  3. 我的直觉告诉我,通过降低每个dyno的进程并发性,您可能会立即获得解决所有这些问题所需的性能优势。