ハードドライブパーティションに複数のファイルを同時に書き込むと、断片化が促進されますか?これらのファイルはハードドライブにインターレースで書き込まれますか?
例:
- Webから複数のファイルを同時にダウンロードする
- さまざまなソースから同じパーティションにファイルをコピーする
- いくつかの急流をダウンロードする
これはさまざまなOS間で異なりますか?ファイル全体にアプリオリにスペースを割り当てることは、アプリケーション固有の機能ですか?
ハードドライブパーティションに複数のファイルを同時に書き込むと、断片化が促進されますか?これらのファイルはハードドライブにインターレースで書き込まれますか?
例:
これはさまざまなOS間で異なりますか?ファイル全体にアプリオリにスペースを割り当てることは、アプリケーション固有の機能ですか?
回答:
これは、使用中のファイルシステム、ある程度オペレーティングシステム、およびファイルを開いているプログラムに大きく依存します。新しいファイルを作成するときに正しいストレージ容量を要求するかどうかはアプリケーション次第であり、これらのアプリがどのくらいの容量を知らない場合にこれらのアプリが従うオープンおよび拡張動作に影響を与えるのは、オペレーティングシステムとファイルシステムの機能ですをお願いする。
プログラムがオペレーティングシステムに4.2GBファイルを要求した場合、OSは4.2GBの空き領域を見つけます。それが失敗すると、ファイルを保存するのに十分な空き領域の断片がプログラムに与えられます。ここにはいくつかの変数がありますが、これは単純化されています。
プログラムがオペレーティングシステムに4KBファイルを要求すると、OSがそれを提供します。プログラムが新しい連続した4KBセグメント(ファイルをダウンロードしていて、プログラムがその大きさを知らなかった)が4.2GBのスペースを取得するまで要求し続ける場合、OSは喜んでスペースを提供します。これは、ファイルシステムとOSが異なる場合です。
たとえば、XFSはエクステントベースであるため、追加される領域は、それができなくなるまで連続します。また、XFSは、特定の容量の新しいファイルを事前に割り当てるように構成できます。これにより、断片化をさらに最小限に抑えることができます(仮想マシンのストレージボリュームやDVD ISOボリュームで役立ちます)。
EXT2 / 3、NTFS、およびReiserは、それができなくなるまで、連続して割り当てます。次に、新しいフラグメントを開始します。ただし、各フラグメントのサイズは4KBです。
最悪の場合を考えてみましょう。2つの並列4.2GBファイルが同時に4KBで同じディレクトリに保存されます。一部のOS / FSの組み合わせは、ファイルを同じディレクトリに互いに近づけようとするため、「同じディレクトリ」は最悪のケースの一部です。一部のOS / FSの組み合わせでは、これにより2つのファイルがディスク上で完全にインターリーブされます。新しく開いたファイルを別の空きセグメントに保持しようとする他のユーザーにとっては、断片化がまったくないか、ほとんどありません。
XFSについて少し(ext4とbtrfsでもこれができると思います)。この場合、インターリーブは4KBではなく、ボリュームをマウントするときに割り当てサイズの値に設定したものになります。256MBに設定すると、100万を超えるのではなく、17のフラグメントを含む4.2GBのファイルが得られます。メディアサーバーのような大きなファイルを格納するボリュームに役立ちます。itty bittyファイルといくつかの大きなファイルを格納するボリュームには役立ちません。
これは、Bittorrentクライアントが新しいダウンロードを開始するときにスパースファイルを開くか、開始する前に指定された合計サイズを割り当てるためです。
同じパーティションの別の部分(または他のパーティションからでも)からファイルをコピーする場合、コピープロセスは理論的にコピーされたファイルの大きさを知っているため、最初からOSに適切なサイズのスペースを要求します。新しいファイルの割り当てを追加する必要はありません。