Ntfs控制MFT成長增量

Ntfs控制MFT成長增量

我在 Windows Server 2008 系統上有一個完全格式化的 8TB NTFS 硬碟。我正在使用一些並行的 robocopies 將 6TB 的文檔複製到上面。有大量小文件(約 1.5 億)。這些分佈在多個目錄中。總體而言,文件太大而無法內聯到 MFT 中。大約經過四分之三的時間,副本的性能顯著下降。

從 procmon 來看,瓶頸似乎是 MFT 擴充。我看到每個 robocopy 進程在 CreateFile 上花費約 3.5 秒。在發出第一個呼叫後,我立即在 $Mft 上看到 IRP_MJ_READ 返回檔案結束。就在 CreateFile 成功之前,我在另一個 $Mft 讀取中看到成功。

一些相關資訊:MFT 已經很大~115GB。然而,這遠小於預設預留的 12.5% 驅動器。 MFT 正在迅速分裂。 Contig.exe 報告 100,000 個片段。新片段被頻繁添加(每秒多次)。

我的問題:

我可以使 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

區域很小,這樣正常嗎?

答案1

最新版本的 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 的成長,除了查看碎片整理選項之外,現階段我無能為力。

我不確定是否有辦法可以從一開始就避免這種情況。感覺您應該能夠將已知大小的檔案並行複製到新格式化的磁碟,而不會出現這種等級的碎片。

相關內容