コードあり、
async.series(tasks, function (err) {
return callback ({message: 'tasks execution error', error: err});
});
ここで、tasksは関数の配列であり、それぞれが (requestモジュールを使用して) HTTP 要求を実行し、MongoDB API を呼び出してデータを (MongoHQ インスタンスに) 保存します。
私の現在の入力(実行するのに約200のタスク)では、
[normal mode] collection cycle: 1356.843 sec. (22.61405 mins.)
しかし、単純に からseriesに変えてみるとparallel、すばらしい効果が得られます。~30 secsの代わりにほぼ同じ量のタスクが実行されます~23 mins。
しかし、何も無料ではないことを知っているので、その変化の結果がどうなるかを理解しようとしています。開いているソケットの数がはるかに多くなり、メモリ消費が増え、DB サーバーへのヒットが増えると言えますか?
コードを実行するマシンは 1 GB の RAM Ubuntu しかないため、アプリが 1 回ハングするようにしましたが、リソース不足が原因でしょうか?