使用gem axlsx_rails后,我收到错误"超出内存配额"

时间:2018-04-05 08:29:01

标签: ruby-on-rails heroku axlsx

我使用gem axlsx_rails基于视图中的html表创建报告。使用此gem之后,我在Heroku R14 Memory quota exceeded上收到错误。但即使网站上的人很少(晚上),我收到的这条消息也是如此。当我重新启动dyno时,会暂时删除该消息,并在一段时间后重复该消息。 在我看来,某处有内存泄漏,使用内存,但没有清理。你能帮我理解问题是什么吗?任何想法?

P.S。

Dyno - Performance-M(RAM 2.5GB)。自动调整最多2.内存使用最多6GB

网络服务器 - Puma

WEB_CONCURRENCY - 2

RAILS_MAX_THREADS - 5

现在我将WEB_CONCURRENCY更改为1并重新启动服务器,还没有问题,但有些事情告诉我这是暂时的。以前,这不是。

1 个答案:

答案 0 :(得分:0)

实际上,axlsx(或caxlsx)的性能未知。遗憾的是,我还没有找到任何解决方案来使其与axlsx兼容...但是,您可以尝试fast_excel

以下是10万条记录的基准数据:

Memory benchmark — — — — — — — — — — — — — — — — — — -
     fast_excel:  55201256 allocated
     xlsxtream:  311132199 allocated —  5.64x more
     caxlsx:     1941847581 allocated — 35.18x more


Time benchmark — — — — — — — — — — — — — — — — — — -
     fast_excel:  5.2363 seconds
     xlsxtream:   7.9638 seconds -  1.52x more
     caxlsx:      77.9891 seconds - 14.89x more