![Ntfs 제어 MFT 증가 증가](https://rvso.com/image/1555361/Ntfs%20%EC%A0%9C%EC%96%B4%20MFT%20%EC%A6%9D%EA%B0%80%20%EC%A6%9D%EA%B0%80.png)
Windows Server 2008 시스템에 깔끔하게 포맷된 8TB NTFS 드라이브가 있습니다. 병렬 robocopies를 사용하여 6TB의 문서를 복사하고 있습니다. 작은 파일이 많이 있습니다(~1억 5천만). 이는 여러 디렉토리에 분산되어 있습니다. 전체적으로 파일이 너무 커서 MFT에 인라인으로 들어갈 수 없습니다. 약 3/4 정도가 지나면 사본의 성능이 크게 떨어졌습니다.
procmon을 보면 병목 현상이 MFT 확장인 것으로 보입니다. CreateFile에서 각 robocopy 프로세스가 ~3.5초가 걸리는 것을 확인했습니다. 첫 번째 호출이 실행된 직후 $Mft에서 END OF FILE을 반환하는 IRP_MJ_READ가 표시됩니다. CreateFile이 성공하기 직전에 다른 $Mft 읽기에서 SUCCESS가 표시됩니다.
일부 관련 정보: 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 성장에 영향을 미칠 것이며 조각 모음 옵션을 살펴보는 것 외에는 이 단계에서 할 수 있는 일이 없습니다.
애초에 이 상황을 피할 수 있는 방법이 있었는지 잘 모르겠습니다. 이 수준의 조각화 없이 알려진 크기의 파일을 새로 포맷된 디스크에 병렬로 복사할 수 있어야 할 것 같습니다.