We have an IIS-7 server on Windows 2008. A custom web app writes files that clients upload to an NTFS partition. Each year we have between between 40,000-60,000 folders with 2-20 files in each. Trying to open a folder for the year in explorer is a problem and can take minutes to build the folder list. This got me wandering if this is a problem for the system in general?

I guess the simpler question is if our web app accesses files directly by the exact path would having tens of thousands of files still slow things down?


Windows (NTFS) does not buffer the $MFT permanently - depending on memory, it may (very well given the size) be necessary to read it from disk which may take quite a while and stalls all volume access attempts.

I've been fighting with that for a while and the only solution is to reduce directory size. Instead of (flat) e.g. \2017-07-20.log and so on in a single, gigantic folder, use \2017\07\2017-07-20.log. That way no folder grows out of size and - assuming current folders are accessed more frequently - locality of folder accesses is greatly improved.

If you can't do that the only remedies is to reduce the $MFT size by stripping 8.3 names, not use excessively complex names, ACLs, Audits, ...

Another remedy is to add memory into the machine to improve caching.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.