web-dev-qa-db-ja.com

大きなファイルに2048キロバイトのアロケーションユニットサイズを使用する

1GBを超えるファイルを保存するために使用するToshibaHDWA130 HDDがあります排他的に 1。

ディスクをNTFSでフォーマットし、USB 3(UASP)経由で接続されたWindowsでのみ使用します。

私の疑問:2048キロバイトのアロケーションユニットサイズを使用することの欠点はありますか?

ありがとう。

1
Sprinter

2048キロバイトのアロケーションユニットサイズを使用することの欠点はありますか?

アロケーションユニットサイズが小さいことのデメリット に対する回答を書いたので、別の方法を検討するのが適切だと思われます。

大規模なファイルシステムアロケーションユニット(提案されている2メガバイトなど)の欠点は次のとおりです。

  • 大規模なI/O操作は、長い時間を消費します。
    クラスターのディスクI/Oが単一(マルチセクター)の読み取りまたは書き込みATAコマンドを使用して最適化されると仮定すると、そのようなI/O操作はI/Oチャネル(つまりSATA)を拘束します。または外付けドライブの場合はUSB)、その他の操作を遅らせます。
    他のアクティブなプロセスは、I/O要求を満たすのに遅延が発生する可能性があります。
    古いバージョンのATA(バージョン3など)では、マルチセクター操作のセクター数が255に制限されていることに注意してください。提案されている2MBのクラスターサイズは、4096(512バイト)セクターに相当します。

  • 大きなメモリバッファ。
    開いているファイルまたはアクティブなファイルはすべて、通常、割り当てサイズに一致するシステムバッファを必要とします(直接I/Oが実行されない場合)。
    Modern DMAコントローラーにはスキャッター/ギャザー機能があるため、これらのバッファーは物理的に隣接するRAMを必要としません。X86システムには(通常)IOMMUがないため、いくつかあります。このような大きなDMAバッファを処理するときにオーバーヘッドが追加されました。
    システムにRAM(一部の64ビットシステムのように)がたくさんある場合、これはまったく重要な問題ではない可能性があります。

  • スラックスペースが増加します。
    これは、割り当てサイズが非常に大きいことの最も明らかな欠点である可能性があります。すべてのファイルには、最後のクラスターに未使用のスペースが残っている可能性があります。
    割り当てサイズが大きくなると、スラックスペースが増えるため、未使用(および無駄)のスペースが増える可能性があります。
    ただし、スラックスペースの増加は、通常、適切な数のアロケーションユニットを維持しながら(つまり、過度に大きなアロケーションテーブルを回避しながら)ストレージ容量を増やすこととのトレードオフとして受け入れられます。


最後のリンクは私の質問を解決しました

メトリックは主にI/O操作を実行する時間であることに注意してください。
クラスターサイズが大きいと、一部のCPU処理が削減され(たとえば、割り当てるクラスターが少なくなり、実行するI/Oが少なくなります)、マルチプロセッシングパフォーマンスが向上し、I /の実行時間に反映されない場合があります。 O操作。

1
sawdust