NTFSによるMFT成長の増加の抑制


2

Windows Server 2008システム上にきれいにフォーマットされた8TB NTFSドライブがあります。私はいくつかの並列ロボットを使って6TBの文書をコピーしています。多数の小さなファイルがあります(〜1億5000万)。これらは多数のディレクトリに分散しています。全体として、ファイルは大きすぎてMFTには収まりません。これまでの約4分の3の間に、コピーのパフォーマンスは大幅に低下しました。

procmonを見ると、ボトルネックはMFTの拡張であるように見えます。それぞれのrobocopyプロセスがCreateFileに約3.5秒かかることがわかります。最初の呼び出しが発行された直後に、$ MftのIRP_MJ_READがEND OF FILEを返しています。 CreateFileが成功する直前に、別の$ MftがSUCCESSを読んでいるのが見えます。

いくつかの関連情報: MFTはすでに最大115GBです。しかし、これはドライブの12.5%のデフォルト予約よりはるかに少ないです。 MFTは急速に断片化しています。 Contig.exeは100,000のフラグメントを報告します。新しいフラグメントが頻繁に追加されています(1秒間に複数回)。

私の質問:

MFTをもっと大きな塊に拡張することはできますか?

MFTが予約サイズをはるかに下回っていてもフラグメント化されているのはなぜでしょうか。私はMFTが予約サイズから始まらないことを知っています、しかしそれがそれに隣接して成長することができないなら予約のポイントは何ですか。ドライブにはまだ33%の空き容量があるため、通常のデータではまだ予約を使用してはいけません。

更新 fsutil fsinfo ntfsinfoは、MFTに関する次の情報を提供します。

Mft Valid Data Length: 0x0000001ca90c0000
Mft Start Lcn:         0x0000000000000000
Mft Zone Start:        0x000000003c828360
Mft Zone End:          0x000000003c828380

ゾーンは非常に小さいです、これは普通ですか?


おそらく150 milのファイルすべてをzipに圧縮したり、それを転送したものなら何でも圧縮してから解凍したほうがよいでしょう。
cybernard

@cybernardこれは単一のスイッチにまたがるiSCSIからiSCSIです。ネットワークはボトルネックとは何の関係もありません。ファイルシステムのオーバーヘッドです。
Laurence

回答:


0

SysInternals contigの最新バージョンは、空き容量について報告することができます。

contig64 -f 

それが示している:

Free cluster space       : 2,838,753,701,888 bytes
Free space fragments     : 89,747,382 frags
Largest free space block : 90,112 bytes

私はこれがすべてを説明すると思います。 2TB / 8TBを超える空き容量(25%)があっても、空き領域は完全に断片化されています。これはMFTの成長に影響を与えるでしょう。そして、デフラグオプションを検討する以外に、この段階で私ができることは何もありません。

そもそも、このような状況を回避できた可能性があるかどうかはわかりません。このレベルの断片化を起こすことなく、既知のサイズのファイルを新しくフォーマットされたディスクと並行してコピーできるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.