1. ホーム
  2. windows

[解決済み] NTFSのパフォーマンスと大容量のファイルやディレクトリー

2022-04-17 14:33:11

質問

NTFSを使用するWindowsでは、大量のファイルやディレクトリをどのように処理するのですか?

パフォーマンス問題やその他の問題に直面する前に、1つのディレクトリに配置できるファイルやディレクトリの上限に関するガイダンスはありますか?

例)10万個のフォルダが入ったフォルダを持つことは問題ないのでしょうか?

解決方法は?

何千万ものファイルが入ったフォルダーがある環境の方からのアドバイスです。

  1. フォルダは、インデックス情報(子ファイルへのリンク&子フォルダ)をインデックスファイルに格納します。このファイルは、子ファイルがたくさんあると非常に大きくなってしまいます。フォルダである子とファイルである子は区別されないことに注意してください。唯一の違いは、その子のコンテンツが、その子のフォルダーインデックスか、その子のファイルデータのどちらかであることです。注:多少簡略化していますが、要点はご理解いただけると思います。
  2. インデックスファイルは断片化されます。断片化しすぎると、そのフォルダにファイルを追加することができなくなります。これは、許可されるフラグメントの数に制限があるためです。これは設計上のものです。マイクロソフトにサポートインシデントコールで確認済みです。つまり、1つのフォルダに入れられるファイル数の理論上の上限は数十億個ですが、数千万個のファイルになると、まずフラグメントの制限にぶつかるので、頑張ってください。
  3. しかし、悪いことばかりではありません。ツールを使えばいいのです。 contig.exe このインデックスのデフラグを行うことができます。インデックスのサイズは小さくなりませんが(数千万ファイルの場合、数ギガに達することもあります)、フラグメントの数を減らすことができます。注意:ディスクデフラグツールはフォルダのインデックスをデフラグしません。ファイルデータのデフラグを行います。contig.exeツールだけがインデックスのデフラグを行います。参考: contig.exe ツールを使用して、個々のファイルのデータをデフラグすることもできます。
  4. デフラグを行う場合、フラグメントの最大数に達するまで待たないでください。私は、手遅れになるまで待ったので、デフラグできないフォルダがあります。次のテストは、そのフォルダーからいくつかのファイルを別のフォルダーに移動して、デフラグできるかどうかを確認することです。もしこれが失敗したら、私がしなければならないのは、1)新しいフォルダーを作ることです。2) 一連のファイルを新しいフォルダーに移動する。3) 新しいフォルダのデフラグ。これが完了するまで#2 & #3を繰り返し、4) 古いフォルダを削除し、新しいフォルダの名前を古いものと一致するように変更します。

より直接的に質問にお答えします。10万件の応募があっても、心配ありません。自分でノックアウトしてください。数千万件の応募があるようなら、どちらでもいい。

a) サブフォルダに分割する計画を立てる(例:100Mのファイルがあるとする。1つの大きなフォルダに格納するよりも、1000個のフォルダに格納し、1つのフォルダに10万ファイルしか格納できないようにする方がよいでしょう。これは、フラグメントの最大数の制限にヒットする可能性が高い単一の大きなものではなく、1000フォルダのインデックスを作成します。

b) 定期的にcontig.exeを実行して、大きなフォルダのインデックスのデフラグを維持する計画を立てます。

以下は暇な方のみお読みください。

実際の制限は、フラグメントの数ではなく、フラグメントへのポインタを格納するデータセグメントのレコード数です。

つまり、ディレクトリデータの断片へのポインタを格納するデータセグメントがあるわけです。ディレクトリデータには、ディレクトリに格納されていると思われるサブディレクトリとサブファイルに関する情報が格納されています。実は、ディレクトリは何も保存していません。記憶媒体自体が線形であるため、ユーザーに階層構造の錯覚を与える追跡・表示機能に過ぎないのです。