web-dev-qa-db-ja.com

ジャーナリングファイルシステム上の多くの一時ファイル?

多くのファイルの書き込みと削除をすばやく行う

持続的な期間にわたって、1秒あたり多くの一時ファイルを書き込むつもりです。それぞれが数ミリ秒後に削除されます。

高速カメラからの部分的なフレームで毎秒約2000で動作する画像処理ソフトウェアがあるとします。それらのそれぞれがファイルに書き込まれ、次にファイルが少し変更され、再度読み取られ、同じ数ミリ秒で削除されます。

これは現在tmpfsファイルシステムで実行されますが、実行できないと仮定しましょう。
いいえ、できません"それを修正するだけ"、いくつかのレガシー統合に必要です。

ファイルシステムはどのように対処していますか?

これがファイルシステムオプションとどのように相互作用しているかを理解したいと思います。具体的には、ファイルシステムジャーナルがこれとどのように相互作用するかについて頭を悩ませることはできません。

ナイーブなアイデアとして、データがディスクに触れないこと、メタデータでさえ触れないことを期待できます。ファイルを作成して削除した後でも、データは同じですよね?そして、ディレクトリに名前を書き込んだり削除したりした後、ディレクトリも同じですよね?

驚くべき効果

何も間違っていません。

ディレクトリは、ある場所を再利用して新しいファイル名を保存したり、別の場所を保存したりするなど、複数の方法で同じファイル名を表すことができます。
つまり、ディスクブロックへの書き込み操作が行われる場合、ファイルシステムレベルを変更せずに変更されている可能性があるため、ディスクに書き込む必要があります。

しかし、4つの操作のそれぞれに対して1回だけ書き込まれないようにすることはできますか?そして、ジャーナルはどうですか?私の一時データは最終的にジャーナルに記録されますか?それを防ぐことはできますか?

1つの質問として:それを行うとき、私は何に注意するか、または心に留めておくべきですか?

3
Volker Siegel

私はあなたに理論が何であるかを言うことができますが、実際の経験はありません。私は、ファイルがメモリからディスクに数秒ごとにプッシュされるだけであり、十分に速く削除されたファイルがディスクに保存されることは決してないことを読みました。ジャーナルにもありません。

ファイルをプッシュするために5秒間完全に存在する必要があるのか​​、それとも5秒ごとに発生するチェックポイントの瞬間に存在するだけなのかわかりません。おそらく後者。その場合、一部のファイルがディスクに吸い上げられます。これは、しばらくの間定期的に発生します。

調べることをお勧めする マウントオプション はほとんどありません。間隔を長くすることで、これらのチェックポイントの瞬間を任意にまれにすることができますが、それでも発生します。また、遅延割り当てには、説明できない理由により、データをディスクにプッシュしたままにするという副作用があります。それについてどこで読んだか覚えていません。

  • ext3でcommit = nrsec(nrsec秒ごとにすべてのデータとメタデータを同期します。デフォルト値は5秒です。ゼロはデフォルトを意味します。)
  • ext4でのdelalloc(書き込み時間までブロック割り当てを延期する)

推奨される解決策:メモリ内のファイルシステムを使用します。このようにして、ディスクに何も保存されないことが確実になります。 tmpfsまたはramfsのいずれかで、スワップできるかどうか、指定された容量を超えて拡張できるかどうかなど、いくつかの違いがあります。私はこれが基本的にあなたが今使っているものであることを知っています。/tmpである必要はありません。このようなタイプの新しいファイルシステムは、任意のディレクトリに作成できます。

http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/

1
ArekBulski