Heroku上のJavaアプリでNewRelicで見る限りメモリはまだ余裕がありそうなのにR14(Memory quota exceeded)がログに出力されるようになり、アプリの応答が極端に悪くなる(というより1台のDynoがほぼ無応答になる)という事象が発生したので、原因を調査しました。 結論から言うとエラーの原因は特定できなかった(いや、まぁメモリ不足であることはわかっている(^^;)んですが、なかなか興味深いこともわかったのでここにまとめておきます。 ★ JavaVMのメモリ管理 Javaで使用中のメモリ量を調べる方法としてはRuntimeのメソッドを使用する方法とMemoryMXBeanを使用する方法があります。 http://docs.oracle.com/javase/jp/7/api/java/lang/Runtime.html http://docs.oracle.com
![HerokuとJavaのメモリのお話](https://cdn-ak-scissors.b.st-hatena.com/image/square/77ca4b3cc8db63a9590c149e658f2ed129bed79d/height=288;version=1;width=512/http%3A%2F%2Fblog.flect.co.jp%2Flabo%2Fimages%2F2013%2F12%2F20%2Fmemory.png)