2017-12-12 3 views
1

私はec2上にWebサーバーを持っています。ファイルをAWS-S3にアップロードし、fs.unlink()関数を使用して削除した後、fs.writeSync関数を使用して/ tmpに200Mbファイルを書き込んでいます。このサイクルは数日間続くことができます。ec2で一時メモリを解放する方法

しかし〜15回の反復の後、それはエラースロー:私が間違っているのは何

ENOSPC: no space left on device, 

書き込み、上記の問題上の任意のヘルプ/提案が参考になっなります。

答えて

0

私の推測では、fs.unlink()コールは失敗しています。確認する戻り値を確認します。

fs.unlink()は、他のコードがファイルを閉じることができなかったため失敗する可能性があります。

注:インスタンスに別の小さなEBSボリュームを作成し、そのボリューム上の一時ファイルを管理することをお勧めします。ユースケースを使用すると、ルートボリュームにディスクがいっぱいになってOSまたはWebサーバーがクラッシュする可能性があります。

0

私はこの問題を発見したようです。 File descriptor should be closed after/before deletingファイル。

+1

'unlink'は、その名前が意味することを行います - ディレクトリエントリを削除します。ファイルシステムは、最後の記述子が閉じられるまで、実際にスペースを解放しません。 –

関連する問題