How many files can a windows server 2008 r2 directory safely hold?
I’m thinking in terms of a website that has image galleries. Say there is one directory that holds all the thumbnails and a different directory that holds the full size images. How many pairs of images can be safely stored?
Or, if there isn’t a good cut-and-dry answer, should I just try it with 30,000 images?
If your server is using NTFS for its volume file system, you aren’t limited to any number of files per directory per se, but more in that you are limited to some number of files/directories per volume.
For NTFS, size limitations are:
Of course, that says nothing about performance, and there are other considerations that can come into play. With 30000, you shouldn’t worry. When you get into the millions, you might have to start restructuring.
edit to address scaling/performance
Technically speaking, the NTFS file system uses a global MFT that keeps track of all the files (directories are files and are mostly used for logical representation to the end user) so every time you modify the volume, that change is reflected in the MFT.
When you start having a single directory with large numbers of files, one of the recommended procedures is to disable automatic 8.3 name generation. From the technet article I linked above:
So if you are constantly modifying a single directory with a large amount of files, the system has to generate a short name for it – this can lead to performance degradation if you are constantly modifying the contents of a single directory. Since you are storing images, it could be very likely a lot of the files have similar file names at the beginning, like imageblahblahblah.
For file look-up performance, even for large directories NTFS should be reasonably fast because of the underlying B-Tree implementation.
Also check out this thread: NTFS performance and large volumes of files and directories