Summary: The Master File Table is used by the NTFS file system to track how files are laid out on disk. The layout of the MFT itself can impact performance.
I've heard that in NTFS there are some master tables whose size can be changed to handle large numbers of files better. I generate lots of files. How do I increase these table(s) and when?
•
You're thinking of the MFT or Master File Table. By default 12.5% of your hard disk space is set aside for the MFT when an NTFS drive is formatted.
•
If the system later needs to make the MFT larger, it will. The problem is fragmentation. Chances are very high that if the MFT grows, then it will be fragmented. Apparently it's also common that if you converted a drive from FAT to NTFS, the MFT is may be fragmented from the start. Unfortunately the defragger that is part of the operating system cannot defrag the MFT.
So is 12.5% enough? If not, how much is enough? Microsoft, in their support article How NTFS Reserves Space for its Master File Table (MFT) doesn't give any guidelines, and suggests experimenting to determine the optimal setting for your system.
But I'll make a wild approximation.
Your MFT needs are primarily a function of the number of files you'll generate and the size of your NTFS partition. MFT entries range in size from 1 to 4k, so if we assume the 4k maximum then that 12.5% on a 60 gigabyte drive can hold entries for just under 2 million files.
There is a registry setting that can be changed such that all future reformats of NTFS drives will set aside more MFT space. The instructions for changing that setting are included in the Microsoft support article I referenced above.
By the way, if 12.5% seems like a lot of space to be dedicating to the MFT, it may not be as bad as you think. Small files, I'm guessing 2k or less in size (it varies), actually reside within their MFT entry. It's only larger files that need any space outside the MFT.
So the bottom line: if you can, FORMAT, don't convert, your drives to NTFS, and if you think you'll need a larger MFT, change the registry setting before you format. If it's too late, then there is one commercial program, Diskeeper from Executive Software, that can defrag your MFT.
In addition to the Microsoft Support article I referenced above, the following resources may also be helpfull:
Article C1829 - August 12, 2003
A few details here are wrong. The size of each MFT entry is fixed once the drive is formatted. Usually 512 or 1024 bytes, not 4K as suggested here. The actual size of both the entire MFT and each MFT entry is conveniently reported by chkdsk, so there is no need to guess for any actual disk in question.
The percentage reserved through the registry for MFT use is not truly reserved in the sense that the disk fills up more quickly, it is only reserved in the sense that as long as there is at least one free cluster outside the MFT zone, files that grow will grow into those files, not those within the xx% margin from the start of the MFT. This reduces the risk of a fragmented MFT as long as free disk space does not drop below those xx%.
If xx% is set larger than the free space, the risk of a fragmented MFT increases dramatically, even if the MFT is actually much smaller than xx%. If the MFT gets bigger than xx% the same happens. So try to put the xx% selection strictly between the actual MFT size reported by chkdsk and the percentage of free disk space.
Oh, and one of the other posters was correct: The xx% does not affect the format command and is not stored on disk. It doesn't even survive a simple reboot, it just affects which free cluster will be used first by the code in NTFS.SYS, until the next time the registry entry is read by NTFS.SYS (which is at reboot and possibly other times).
Posted by: Jakob B at May 7, 2005 9:49 AMI copied the contents of a drive to another so that I could format the first drive and now that I've done so and moved everything back, I've found that I have a large 4 gb (my size choice) MFT on both drives. How do I get rid of the one I don't want?
Posted by: GSellars at September 8, 2005 4:02 AMactually I am wondering if there is any 'rule of thumb' for creating a larger MFT or determining if the default size is enough. I am working with a 4 terabyte raid volume that is currently 2,350 GB in use. The XP defragger reports a total MFT size of 304 MB with 311,559 record count.
Posted by: David at October 9, 2005 8:15 PMTotal files is 303,575 with average size of 8MB. The article appears to refer to more general drive space requirements for smaller drives (60 gigs). I have larger space requirements due to the specific applications in use and the data required.
Good article, saved my bacon!
Posted by: LaoziSailor at December 3, 2008 4:35 PMThe reference to Diskeeper was invaluable -- I don't like to manually intervene in the registry.
Cheers!
OK, only one thing I would add - the disk defragmenter provided in the system can defragment the MFT in later versions of NT4.0 and XP and later - this is in the Microsoft article referenced.
Posted by: Shane at February 3, 2010 12:39 PM