[解決済み] NTFSのパフォーマンスと大容量のファイルやディレクトリー
質問
NTFSを使用するWindowsでは、大量のファイルやディレクトリをどのように処理するのですか?
パフォーマンス問題やその他の問題に直面する前に、1つのディレクトリに配置できるファイルやディレクトリの上限に関するガイダンスはありますか?
例)10万個のフォルダが入ったフォルダを持つことは問題ないのでしょうか?
解決方法は?
何千万ものファイルが入ったフォルダーがある環境の方からのアドバイスです。
- フォルダは、インデックス情報(子ファイルへのリンク&子フォルダ)をインデックスファイルに格納します。このファイルは、子ファイルがたくさんあると非常に大きくなってしまいます。フォルダである子とファイルである子は区別されないことに注意してください。唯一の違いは、その子のコンテンツが、その子のフォルダーインデックスか、その子のファイルデータのどちらかであることです。注:多少簡略化していますが、要点はご理解いただけると思います。
- インデックスファイルは断片化されます。断片化しすぎると、そのフォルダにファイルを追加することができなくなります。これは、許可されるフラグメントの数に制限があるためです。これは設計上のものです。マイクロソフトにサポートインシデントコールで確認済みです。つまり、1つのフォルダに入れられるファイル数の理論上の上限は数十億個ですが、数千万個のファイルになると、まずフラグメントの制限にぶつかるので、頑張ってください。
- しかし、悪いことばかりではありません。ツールを使えばいいのです。 contig.exe このインデックスのデフラグを行うことができます。インデックスのサイズは小さくなりませんが(数千万ファイルの場合、数ギガに達することもあります)、フラグメントの数を減らすことができます。注意:ディスクデフラグツールはフォルダのインデックスをデフラグしません。ファイルデータのデフラグを行います。contig.exeツールだけがインデックスのデフラグを行います。参考: contig.exe ツールを使用して、個々のファイルのデータをデフラグすることもできます。
- デフラグを行う場合、フラグメントの最大数に達するまで待たないでください。私は、手遅れになるまで待ったので、デフラグできないフォルダがあります。次のテストは、そのフォルダーからいくつかのファイルを別のフォルダーに移動して、デフラグできるかどうかを確認することです。もしこれが失敗したら、私がしなければならないのは、1)新しいフォルダーを作ることです。2) 一連のファイルを新しいフォルダーに移動する。3) 新しいフォルダのデフラグ。これが完了するまで#2 & #3を繰り返し、4) 古いフォルダを削除し、新しいフォルダの名前を古いものと一致するように変更します。
より直接的に質問にお答えします。10万件の応募があっても、心配ありません。自分でノックアウトしてください。数千万件の応募があるようなら、どちらでもいい。
a) サブフォルダに分割する計画を立てる(例:100Mのファイルがあるとする。1つの大きなフォルダに格納するよりも、1000個のフォルダに格納し、1つのフォルダに10万ファイルしか格納できないようにする方がよいでしょう。これは、フラグメントの最大数の制限にヒットする可能性が高い単一の大きなものではなく、1000フォルダのインデックスを作成します。
b) 定期的にcontig.exeを実行して、大きなフォルダのインデックスのデフラグを維持する計画を立てます。
以下は暇な方のみお読みください。
実際の制限は、フラグメントの数ではなく、フラグメントへのポインタを格納するデータセグメントのレコード数です。
つまり、ディレクトリデータの断片へのポインタを格納するデータセグメントがあるわけです。ディレクトリデータには、ディレクトリに格納されていると思われるサブディレクトリとサブファイルに関する情報が格納されています。実は、ディレクトリは何も保存していません。記憶媒体自体が線形であるため、ユーザーに階層構造の錯覚を与える追跡・表示機能に過ぎないのです。
関連
-
[解決済み】cmdでdirを呼び出すと出力される。"Cドライブのボリュームにはラベルがありません。"
-
[解決済み] Windowsのフラッシュドライブに_disk_id.podというファイルが表示される
-
[解決済み] Powershellでhead、tail、more、less、sedが行うことを行うには?[クローズド]です。
-
[解決済み] マイクロソフト既知のDLL
-
[解決済み] 0|%0とは何ですか、どのように機能しますか?
-
[解決済み] コマンドプロンプトから sqlite - 認識されないコマンド
-
[解決済み] ファイルパスの前に付ける「୧⃛(๑⃙⃘◡̈๑⃙⃘)୨⃛」は何ですか?
-
[解決済み] PowerShellのコマンドラインからWindowsのバージョンを確認する方法
-
[解決済み] Windowsからリモートサーバーへscpでローカルファイルをコピーする [終了しました]。
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】exec: "gcc": go buildしようとすると%PATH%に実行可能ファイルが見つからない
-
[解決済み] wampでApacheが起動しない
-
[解決済み] .dllファイルに「このプログラムはDOSモードでは実行できません」というテキストがあるのはなぜですか?
-
[解決済み] Windowsタスクバーのアイコンは何ピクセルですか?
-
[解決済み] C:\WINDOWS ASSEMBLYの中にあるものは何?[閉店]
-
[解決済み] xcopyコマンド使用時に "invalid path 0 files copied "というエラーが発生する。
-
[解決済み] TensorFlow : cuInitの呼び出しに失敗しました。CUDA_ERROR_NO_DEVICE
-
Win7でopensslを使用すると「ランダムな状態」を書き込めない問題
-
.NET フレームワークのインストールに失敗しました 0x800c0006 解決方法
-
[解決済み] 管理者として実行せずにネットワークドライブにマップするためのBATファイル