1
2012-07-20T03:04:50+00:00 heroku[web.1]: Process running mem=546M(106.8%)
2012-07-20T03:04:50+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:11+00:00 heroku[web.1]: Process running mem=583M(113.9%)
2012-07-20T03:05:11+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:30+00:00 heroku[web.1]: Process running mem=611M(119.4%)
2012-07-20T03:05:30+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:50+00:00 heroku[web.1]: Process running mem=611M(119.4%)
2012-07-20T03:05:50+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:10+00:00 heroku[web.1]: Process running mem=605M(118.3%)
2012-07-20T03:06:10+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:30+00:00 heroku[web.1]: Process running mem=689M(134.6%)
2012-07-20T03:06:30+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:37+00:00 heroku[router]: Error H12 (Request timeout) -> POST vivid-night-1834.herokuapp.com/ dyno=web.1 queue= wait= service=30000ms status=503 bytes=0
2012-07-20T03:06:51+00:00 heroku[web.1]: Process running mem=909M(177.7%)
2012-07-20T03:06:51+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:07:10+00:00 heroku[web.1]: Process running mem=909M(177.7%)

プロセスのメモリがどれだけ早く不足しているかを確認します。heroku restartを実行しましたが、1秒経ってもまだ発生しています。

私はここ数日間、本当に問題なく取り組んできたnode.jsアプリを持っています。いくつかのmongodb呼び出し、いくつかのredis呼び出しを行いますが、redisとmongoの両方のデータの合計量はおそらく50kb未満です。

問題を追跡するにはどうすればよいですか?

4

2 に答える 2

2

それが機能していたときから現在までの間に行った変更を見てください。

コードを見ずに、問題が何であるかについて多くを語るのは難しいでしょう。ただし、明らかにメモリを何度も割り当てるために何かをしているので、それはループか、適切な終了なしの再帰関数呼び出しのいずれかです。調子。

于 2012-07-20T03:28:51.923 に答える
2

ループでしたが、メモリクォータの超過は、ほとんどの開発者がherokuで直面する一般的な問題です。これは、ノードのガベージコレクターと関係があります。同じ問題を探していたかもしれない人たちを助けるために、私はここに私の答えを置いています。

ノード(V8)は、怠惰で貪欲なガベージコレクターを使用します。デフォルトの制限は約1.5GBであるため、未使用のメモリを再利用する前に、絶対に必要になるまで待機することがあります。メモリ使用量が増加している場合、それはリークではなく、ノードの通常の怠惰な動作である可能性があります。Procfileアプリのガベージコレクターをより細かく制御するために、 :でV8にフラグを指定できます。

これは、使用可能なメモリが1.5GB未満の環境でアプリを実行している場合に特に重要です。たとえば、ノードを512 MBのコンテナに合わせて調整する場合は、次のことを試してください。

web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js

ここから取得https://blog.heroku.com/node-habits-2016

于 2016-07-12T11:19:17.887 に答える