У меня есть чисто отформатированный диск NTFS на 8 ТБ в системе Windows Server 2008. Я копирую 6Тб документов на него, используя несколько параллельных robocopies . Есть большое количество мелких файлов (~150 миллионов). Они распределены по нескольким каталогам. В целом файлы слишком велики, чтобы поместиться в MFT. Примерно через три четверти пути производительность копии значительно снизилась.
глядя на procmon, кажется, что узким местом является MFT расширение. Я вижу, что каждый из процессов robocopy принимает ~3.5 s на CreateFile. Сразу после первого вызова я вижу IRP_MJ_READ на $Mft, возвращающем конец файла. Незадолго до успеха CreateFile я вижу успех на другом $Mft чтения.
кое-какую информацию:
MFT уже большой ~115GB. Однако это намного меньше, чем резервирование по умолчанию 12,5% диска.
MFT быстро фрагментируется. Contig.исполняемые отчеты 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
зона очень маленькая, это нормально?