2017-05-07 8 views
1

私はHerokuの無料プランで実行しているClojure Webアプリケーションを持っています。アプリは1か月以内にうまく機能していますが、過去3日間でログにこのエラーが表示され、アプリが動作していません。エラーR14(メモリクォータを超えました)

Error from Heroku logs

は、私はすべてが正常に起動する場合は、ローカルでこのエラーを再現することはできませんよ。

新しいインスタンスを展開してJAVA_OPTSとJAVA_TOOL_OPTIONSを使用してアプリを何度も再起動しようとしましたが、何も助けてくれず、同じエラーが発生しました。

アプリケーションのコード全体がhereです。誰もこのエラーを経験していて、回避する方法がありますか?

答えて

1

を実行して下。 起動時にHerokuによって実行されたコマンドは、jarファイルを使用していませんでした。私が以前に持っていたのはweb: lein ring server-headlessで、Procfileのjarファイルweb: java -jar target/<app-name>-standalone.jarを実行するように変更しました。

私はringを使用しておりますので、私はまた、Herokuのは、起動前に代わりlein uberjarlein ring uberjarを実行している:これはHerokuのでグローバル設定VARとしてLEIN_BUILD_TASK='ring uberjar'を設定するのと同じくらい簡単です。

1

エラーメッセージには、アプリケーションが割り当てられたHerokuよりも多くのメモリを消費していることが示されています。 Herokuではアプリの指標を見ることができます。そこからのグラフは原因を特定するのに役立ちます。

Herokuには、JVMアプリケーションjava-memory-issuesのメモリ関連の問題に関する特別なガイドがあります。それが役に立つかもしれません。

0

は、あなたの最大ヒープサイズを設定してみてください、私は超えメモリーの犯人を見つけ

$ heroku config:set JAVA_TOOL_OPTIONS="-Xmx256m" 
+0

これは私の特定のケースでは役に立たないようです。これらのhttps://github.com/rogerallen/tweegeemee/blob/master/project.clj#L15-L20のような最適化を試してみましたが、成功はありませんでした。 – feychou

+1

これはおそらく、ネイティブメモリがたくさんあることを意味します。このhttps://jkutner.github.io/2017/04/28/oh-the-places-your-java-memory-goes.htmlをお読みください – codefinger

関連する問題