2017-10-09 21 views
2

ドライブ上に断片化の問題があります。私は、異なるフォルダに50000以上のファイルを生成するプログラムを持っており、各ファイルは時間とともに成長します。各ファイルのサイズは約500MBとなり、ファイルを高速に読み取る必要があります。 私が直面している問題は、各ファイルがドライブに分散され、デフラグメンテーションが4週間以上かかることです。ファイルの断片化を防止する

各ファイル間のギャップが同じシースになるように、ドライブ上の各ファイルを広げるファイルシステムについて聞いたことがあります。私はそのファイルシステムをインターネットで検索しましたが、何も見つかりませんでした。

私のプログラムはJavaで書かれていますが、ドライブ上の特定のバイト位置にファイルの先頭を設定する方法があります。

誰かがこの問題に直面するのを助けることができたらうれしいです。

+4

Javaを使用して行うことは何もできません。実際、Javaはプログラマをそのようなシステムに依存するものから遠ざけるためのものです。 –

答えて

1

各ファイル間のギャップが同じシースになるように、ドライブ上の各ファイルを広げるファイルシステムについて聞いたことがあります。私はそのファイルシステムについてインターネットで検索しましたが、何も見つけられませんでした。

ほとんどのティモシーが言ったように、それは...

存在しないので、あなたがしませんでした。しかし、我々はあなたの痛みを和らげることができ、RAIDシステム(安価なディスクの迅速な配列)を持っている...

0

Javaを使用してそのレベルに到達することはできません。

私はそのファイルシステムを聞いたことはありませんが、それはあまり論理を持っていません。

おそらく、テキストを格納する場合、バイナリサイズでデータを格納するNoSQLデータベース(MongoDBなど)を使用できます。おそらくあなたは良いスピードを得て、Javaコネクタは使いやすいです。

0

ext4のようなディスクの断片化が非常に少ないLinuxファイルシステムを使用してください。ディスクの空き容量が十分にあることを確認してください。

0

また、これを行うファイルシステムについてもわかりません。しかし、私は助けるかもしれないいくつかの情報を持っています -

あなたがSSDを使用した場合、断片化は、パフォーマンスの理由を読むことの心配が少なくなります。 SSDは、データをチャンクに格納します(NANDフラッシュページ、16 KBなど)。これらは、使用されるウェアレベリングアルゴリズムのために、常に分散した順序で格納されます。これは、実際にハードディスクがどのように動作するかとはまったく異なります。 SSD上のページは非常に並行してアクセスされます。その結果、断片化がSSDによる読み取りパフォーマンスに及ぼす影響ははるかに小さくなります。断片化にはまだ書き込み/削除のペナルティがあります。

RAIDはまた、ティモシーが言及しているように、読み取り時のパフォーマンスを向上させます。

関連する問題