2016-07-29 6 views
5

文書を画像に変換する目的でnodeJSアプリケーションを構築しています。その結果、RAM上ではかなり重いので、ピーク時にはサーバー上で最大100%のRAM使用量になる可能性があります。メモリ不足時にノードがクラッシュするのを防ぐ

私の問題は、ノードがクラッシュ(メモリ不足例外)しているので、クラッシュしないように、「できるだけでなく」その仕事をする方法を見つけたいと思います。

私は代替手段があることを知っています(スケーリング、キューイング、それを自動的にバックアップするために '永遠'を使用しています)、それに取り組んでいますが、何かが失敗した場合、 RAMが一杯になると死ぬ。

これを達成する方法はありますか?

+0

関連:http://stackoverflow.com/questions/16797423/how-to-handle-v8-engine-crash-when-process-runs-out-of-memory – Tomalak

答えて

0

私はこのようにそれを行うだろう:

  • タスクが
  • いくつかの別のノード(労働者)のプロセスがキューと計算結果からタスクを消費する永続キューにキューイングされています。各作業者は1.7GBのメモリに制限されています(node.jsプロセスの最大値)
  • 私は、タスクが同期的で計算量が重いので、作業者が2つ以上のタスクを処理することはあまり意味がないと考えます時間。

これは、すべてのRAMが使い果たされないことを保証し、マシンのリソースを非常に効率的に使用します。

関連する問題