コードあり、
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 回ハングするようにしましたが、リソース不足が原因でしょうか?