Ruby on rails 使用Ruby 2.2.2+;,Rails 5在Heroku上可行吗;,还是仍然受到R14错误的困扰?

Ruby on rails 使用Ruby 2.2.2+;,Rails 5在Heroku上可行吗;,还是仍然受到R14错误的困扰?,ruby-on-rails,ruby,memory,heroku,Ruby On Rails,Ruby,Memory,Heroku,如果Ruby的任何版本(2.2.2或更高版本)在Heroku上的生产环境中运行,而不会导致Rails 5应用程序出现R14(内存不足)错误,该怎么办?如果是这样的话,现在是否需要“GC调优”才能使应用程序稳定地投入生产 我正在创建一个新的Rails应用程序,它将在Heroku上运行。我更喜欢使用Rails 5,但它需要Ruby 2.2.2+,而该版本的Ruby对于Heroku上的Rails 4内存使用来说是一场灾难,例如: 正如上面链接的S.O.线程中所指出的,Ruby 2.2.2导致Rail

如果Ruby的任何版本(2.2.2或更高版本)在Heroku上的生产环境中运行,而不会导致Rails 5应用程序出现R14(内存不足)错误,该怎么办?如果是这样的话,现在是否需要“GC调优”才能使应用程序稳定地投入生产

我正在创建一个新的Rails应用程序,它将在Heroku上运行。我更喜欢使用Rails 5,但它需要Ruby 2.2.2+,而该版本的Ruby对于Heroku上的Rails 4内存使用来说是一场灾难,例如:

正如上面链接的S.O.线程中所指出的,Ruby 2.2.2导致Rails 4.2应用程序在低负载条件下在几个小时内内存不足,出现R14错误,即使只有unicorn Worker的一半。我和其他S.O.海报不得不降级回Ruby 2.0以消除R14错误


我在网上找不到任何报告表明是否最终有Ruby 2.0以上的版本可以避免R14问题,并允许Rails 5应用程序在Heroku上稳定运行。

我确实有一个生产应用程序在Heroku上运行,Rails 5和Ruby 2.4.0都没有R14问题。但是我的GC是高度定制的。ErvalhouS,您是必须对GC进行调优以使其可靠地工作,还是在调优之前它就可以正常工作?在我的应用程序中避免巨大内存峰值的唯一方法是调优GC,但即使在Rails 5之前也是如此。没有它,它就不能可靠地工作。我运行时基本上不使用磁盘交换,它在一些报告页面上达到峰值,其中加载了大量记录,但GC运行并在几分钟内交换到0。只是为了比较,应用程序在2x dyno上每分钟接收150-600个请求,并稳定地使用70%的内存