意図的にファイルを断片化する方法

意図的にファイルを断片化する方法

いくつかのツールのパフォーマンスを評価するために既存のファイルを分割する方法を探しています。 NTFSファイルシステムと呼ばれるソリューションを見つけました。私の断片化器この記事で説明されているようにワイヤー。しかし、ext2/3/4については何も見つかりません。独自のファイル断片化ツールを開発することができるようですが、時間の制約があるため、より速い解決策を見つけたいと思います。次のツールが見つかりました。HJ-スプリットファイルをより小さな部分に分割しますが、これはファイルの断片化をシミュレートする疑いがあります。

彼らは私の問題を解決できますか?

ベストアンサー1

欲しいなら確実にする破片だがそうではない防ぐこれは(したがって何が起こるのかを部分的にのみ制御することができます)、断片の詳細には気にしません。

n複数のフラグメントを含むチャンクファイルを作成するには、次の手順を実行します。

  1. 同期書き込みでファイルを開き、m<n ブロックを書き込みます。
  2. 別のファイルを開きます。ディスク上で最大n - mブロックが利用可能になるまで追加します。薄くする間違いを犯さないでください!
  3. 残りのn - mブロックを最初のファイルに書き込みます。
  4. 2番目のファイルを閉じますunlink

より多くのファイルをインターリーブして、より多くのセグメントを分割できます。

これは、ファイルシステムがそのようなアドバイザーに使用できると仮定します。つまり、マルチユーザーや業務上重要な環境ではそうではありません。また、ファイルシステムに予約済みブロックがない、予約済みブロックがUID用に予約されている、またはユーザーがrootであると想定します。

いいえ直接断片化を保証する方法は、Unixシステムがファイルシステム抽象化を使用するため、元のファイルシステムと通信しないためです。

また、ファイルシステムレベルの断片化により、下位レベルで何が起こっているのかわからないことを確認してください。 LVM、ソフトウェアおよびハードウェアRAID、ハードウェアレベルセクタの再マッピング、およびその他の抽象化層は、期待値(および測定値)に大きな影響を与える可能性があります。

おすすめ記事