Scala 为什么即使在未使用Heroku时,我也会在Heroku上收到超过内存配额的错误?(播放2/斯卡拉)
只是坐在那里没有请求,我得到的内存不断增加,最终超过了内存配额。有很多事情我不明白Scala 为什么即使在未使用Heroku时,我也会在Heroku上收到超过内存配额的错误?(播放2/斯卡拉),scala,heroku,playframework-2.0,Scala,Heroku,Playframework 2.0,只是坐在那里没有请求,我得到的内存不断增加,最终超过了内存配额。有很多事情我不明白 为什么没有请求时内存使用量不断增加 “processrunning mem”的值从何而来(似乎不是堆和非堆使用的任何数字组合的总和) 为什么即使我有推荐的JAVA选项:-Xmx384m-Xss512k-XX:+UseCompressedOops-javaagent:heroku-javaagent-1.2.jar=stdout=true 下面是日志文件的一个示例 app/web.1: heroku-javaag
JAVA选项:-Xmx384m-Xss512k-XX:+UseCompressedOops-javaagent:heroku-javaagent-1.2.jar=stdout=true
李>
下面是日志文件的一个示例
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 275M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 276M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 277M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 277M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 278M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 212M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 213M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 213M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
app/web.1: heroku-javaagent: JVM Memory Usage (Heap): used: 214M committed: 349M max:349M
app/web.1: heroku-javaagent: JVM Memory Usage (Non-Heap): used: 37M committed: 37M max:219M
app/web.1: heroku-javaagent: JVM Threads : total: 37 daemon: 7 non-daemon: 21 internal: 9
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=517M(101.1%)
heroku/web.1: Error R14 (Memory quota exceeded)
这个问题不应该只针对Heroku,应该(理想情况下)能够在本地复制。首先,我建议您以Heroku运行应用程序的方式在本地运行应用程序:
- 运行以创建
启动器目标/启动
- 使用启动应用程序(将端口设置为您想要的任何端口)
如果这不起作用,或者您希望更好地了解Heroku上的内存使用情况,我建议启用。这也可用于获取实时内存可视化。在heroku中启用日志运行时指标:
$ heroku labs:enable log-runtime-metrics
Enabling log-runtime-metrics for myapp... done
$ heroku restart
这将允许您查看日志中的内存使用情况
heroku logs -t
我在grails应用程序中收到了相同的错误消息,我读到了这条消息。解决方案很简单,在根文件夹中创建一个system.property文件,并将该java.runtime.version=1.7作为内容,然后我重新部署应用程序,错误R14消失了
我希望这会有帮助我刚刚遇到了一个类似的问题。我无法在本地重现这个问题。 事实证明,我们的日志配置中有一个文件追加器。写入日志使内存增长。
你可以通过编写一个记录大量日志的小应用程序来验证这一点。如果启用日志运行时度量,您将看到内存缓存和内存总量增加 -1六个月前的另一个答案中已经提到了这一点,并且没有增加任何附加值。很公平,我错过了最后一句话。你能分享更多关于日志配置的详细信息吗?希罗库能做些什么来防止这种情况发生?