错误 R14(超出内存配额)在 Heroku 上使用 EHCache 的 Jhipster

Error R14 (Memory quota exceeded) Jhipster with EHCache on Heroku

我在 heroku 上有一个 jhipster 生成的应用程序,自从第一次部署以来,没有做任何修改,我遇到了经典错误 R14(超出内存配额)。经过几次调查,我仍然无法解决这个问题。现在我有 300 个用户,应用程序的使用非常基本,但我仍然想摆脱这个错误。到目前为止我做了什么:

1- 在 herokuJAVA-TOOLS 选项上设置 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap

2- 我也想设置 -Xmx300m ,但考虑到 heroku 已经应用 -Xmx256m 的事实,我认为没有必要重新设置这个值。

我读到的最后一条评论指出我要删除缓存的使用,我认为这会降低应用程序的性能,因为所有 sql 查询都将转到数据库。我正在使用 EHCache 作为本地缓存,你们有没有人通过删除或重新配置 EHCAche 来解决这个问题?或者有什么建议可以解决这种情况?

我的应用程序从未崩溃过,但我担心性能会随着时间的推移而下降。

尝试使用这些 JAVA_OPTS:

-Xmx256m -Xss512k -XX:CICompilerCount=2 -XX:ReservedCodeCacheSize=50m -XX:MaxMetaspaceSize=80m -XX:ParallelGCThreads=3 -Dfile.encoding=UTF-8

这些 Spring 选择:

--server.undertow.io-threads=1

这类似于我们为 jhipster-registry 找到的理想配置。这个想法是减少线程的数量(从而减少线程堆栈的内存)并减少其他堆外内存。