我使用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并重新启动服务器,还没有问题,但有些事情告诉我这是暂时的。以前,这不是。
答案 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