0

node.js で実行される JavaScript コードを作成して、大きな (約 20 MB) ファイルを Azure BLOB にバックアップしました。これは、bash シェルから実行すると機能しますが、cron ジョブ (両方のコンテキストで root として実行) として実行すると、次のエラーで失敗します。

致命的なエラー: v8::Context::New() V8 は使用できなくなりました

おそらくこれは、ヒープ領域が不足していることを意味しますが、cron ジョブの制限はどこに設定されているのでしょうか?

(これは 64 ビットの RHEL 6.2 サーバー上にあり、8 GB の RAM と 426 GB の空きディスク容量があります。Node.js はバージョン 0.8.1 で、Azure はファイル azure-2012-06.tar.gz からのものです。)

ありがとうキース

4

1 に答える 1

0

あなたが大きいと言うとき、それは本当に〜20MBの大きなファイルを意味しますか? cron ジョブは、OOM を返す前にどのくらいの時間実行されますか? また、cronジョブを実行するときに、メモリ使用量をチェックして実際の使用量を確認し、それが原因であるかどうかを確認しました.

cron ジョブのメモリ/ヒープ制限について、cron は単にジョブ スケジューリング エンジンとして機能するため、node.js は引き続き独自のメモリ/ヒープ設定を使用します。これは cron スケジューラに固有のものではありません。V8 メモリを変更/修正する場合は、 --max-old-space-size オプションを使用して値を大きくすることができます。

node.js コードを cron ジョブとして実行する方法を知りたいです。cron ジョブを記述している方法では、Azure Storage への呼び出し中に大量のメモリを消費している可能性があります。

于 2012-07-02T22:28:54.130 に答える