%20%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%97%E3%80%81%E7%B4%84%2010%2C000%2C000%20%E5%80%8B%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%90%AB%E3%82%80%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%A7%E3%83%8F%E3%83%BC%E3%83%89%20%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E9%81%8E%E5%BA%A6%E3%81%AA%E8%B2%A0%E8%8D%B7%E3%82%92%E5%BC%95%E3%81%8D%E8%B5%B7%E3%81%93%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82.png)
内蔵 HDD にはディレクトリがあり、その中には一連のフォルダがあり、合計で約 1,000 万個の小さなテキスト ファイルが含まれています。このディレクトリを Windows エクスプローラーで開くと、ハード ドライブが狂って心臓発作を起こしているような音がします。
リソース モニターは、ドライブの NTFS マスター ファイル テーブルへの約 11.5 MB/秒のアクセスが原因であることを示しています (下のスクリーンショットを参照)。
ドライブのインデックス作成と多数の小さなファイルの組み合わせは不安定であることがわかっているため、このディレクトリとそのすべてのサブディレクトリのインデックス作成は無効になっています。同様に、ディレクトリにはいくつかのフォルダー (それぞれに多数のファイルが格納されている) のみが含まれているため、問題のファイルは画面に表示されません。
そのため、なぜこのような激しい読み取りが発生するのか、少し困惑しています。読み取りが発生するたびに、HDD で動作している他のプロセスがほぼ停止するほど遅くなるため、最近はコマンド プロンプト/PowerShell を使用してドライブとその内容を操作するようになりましたが、何らかの理由で、NTFS の読み取りの激しさは引き起こされないようです。
私は技術者ではないので、Windows 7 がドライブにアクセスしてファイルやフォルダーを表示する方法の詳細はわかりません。そこで、いくつか質問があります。
問題のファイルが画面に表示されず、開かれることもないのに、なぜ NTFS マスター ファイル テーブルにアクセスされるのでしょうか?
それは絶対に必要ですか?
そうでない場合、無効にする方法はありますか? もしある場合、どのような悪影響が生じますか?
多数のファイルを格納することを唯一の目的とするディレクトリを設定するための、より効率的な方法(ディスクの消耗と不要なファイル テーブル アクセスを削減する点で)はありますか?
追加情報: ドライブは正常であり (SMART エラーはなく、CrystalDiskInfo では問題は発生していないと表示されています)、ブート ドライブではありません。
答え1
これほど多くのファイルを保存する良い方法は、ディレクトリ構造を追加することです。
たとえば、ここで説明されている「アルゴリズム」を参照してください。https://serverfault.com/a/95454/5109