我最近在我的Heroku web应用程序中部署了Ruby从2.0到2.1.5的升级,现在我总是遇到内存配额错误,而在2.0和1.9中,这种情况从未发生过。一个普通的Heroku Dyno有512MB的限制,我在Unicorn上运行两个进程,在两个dynos上运行一个Sidekiq线程。
在读取Phusion Passenger memory consumption increase from 1.9.3 (system) to 2.1.2 (RVM) on Ubuntu之后,我尝试将环境变量RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR
设置为0.9以禁用分代垃圾收集器,它确实在一定程度上改善了内存消耗,但仍然远远没有达到2.0或1.9的消耗。由于内存是我现在最关心的问题,我想看看我是否可以用Ruby2.1.x来解决这个问题,而不是恢复到2.0。
以下是演示该问题的一些图表:
在快到下午2点的时候,我把Ruby2.0.0-p598降级到了Ruby2.1.5,内存问题得到了解决,并且仍然在限制之下。
后来,我尝试升级到 2.1.5,但将环境变量 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR
设置为0.9。正如您所看到的,内存使用率略好于原始的2.1.5图,但仍然超过了内存配额。
https://stackoverflow.com/questions/27102565
复制相似问题