Как Windows с NTFS работает с большими объемами файлов и каталогов?
Есть ли какие-либо рекомендации по ограничению количества файлов или каталогов, которые вы можете поместить в один каталог, прежде чем столкнетесь с проблемами производительности или другими проблемами?
Например, у вас есть папка со 100 000 папок внутри, это нормально?
windows
performance
filesystems
ntfs
Джеймс Ньютон-Кинг
источник
источник
Ответы:
Вот несколько советов от кого-то, где есть папки, содержащие десятки миллионов файлов.
Чтобы ответить на ваш вопрос более прямо: если вы просматриваете 100 000 записей, не беспокойтесь. Иди в себя. Если вы просматриваете десятки миллионов записей, то либо:
а) Планируйте подразделить их на подпапки (например, допустим, у вас есть 100 млн файлов. Лучше хранить их в 1000 папок, чтобы у вас было только 100 000 файлов в папке, чем хранить их в 1 большой папке. создаст 1000 индексов папок вместо одного большого, который с большей вероятностью достигнет максимального числа фрагментов или
б) Планируйте запуск contig.exe на регулярной основе, чтобы сохранить индекс вашей большой папки дефрагментированным.
Читайте ниже, только если вам скучно.
Фактическое ограничение не на количество фрагмента, а на количество записей сегмента данных, в котором хранятся указатели на фрагмент.
Итак, у вас есть сегмент данных, в котором хранятся указатели на фрагменты данных каталога. Данные каталога хранят информацию о подкаталогах и подфайлах, которые каталог предположительно хранил. На самом деле, каталог ничего не «хранит». Это просто функция отслеживания и представления, которая создает иллюзию иерархии для пользователя, поскольку сам носитель данных является линейным.
источник
contig.exe
, это не на моем сервере. Поиск Google возвратил эту техническую страницу, где нет упоминаний о подкаталогах или дефрагментации индекса папки.contig.exe
на каталог, я думаю, что он сделает работу:contig -a .
дает:C:\temp\viele-Dateien is in 411 fragments Summary: Number of files processed : 1 Average fragmentation : 411 frags/file
c:\my\big\directory
, илиc:\my\big\directory\*
, или дальше$mft
? (или что-то еще?)Существуют также проблемы с быстродействием создания коротких имен файлов. Microsoft рекомендует отключить создание коротких имен файлов, если в папке более 300 тыс. Файлов [1]. Чем менее уникальны первые 6 символов, тем больше проблем.
[1] Как NTFS работает с http://technet.microsoft.com , поиск «300 000»
источник
If you use large numbers of files in an NTFS folder (300,000 or more), disable short-file name generation for better performance, and especially if the first six characters of the long file names are similar.
- запасной поиск подсказки «300 000». Кстати: достаточно набрать «300» (= здесь нет необходимости в буфере обмена)Я создаю файловую структуру для размещения до 2 миллиардов (2 ^ 32) файлов и выполнил следующие тесты, которые показывают резкое падение производительности Navigate + Read примерно на 250 файлов или 120 каталогов на каталог NTFS на твердотельном диске ( SSD):
Интересно, что количество каталогов и файлов существенно не мешают.
Итак, уроки:
Это данные (2 измерения для каждого файла и каталога):
И это тестовый код:
источник
100 000 должно быть хорошо.
Я (по анекдотическим причинам) видел людей, имеющих проблемы со многими миллионами файлов, и у меня были проблемы с Explorer, просто я не знал, как считать более 60 тысяч файлов, но NTFS должна быть хороша для томов, о которых вы говорите.
В случае, если вам интересно, техническое (и я надеюсь, теоретическое ) максимальное количество файлов: 4 294 967 295
источник
Для локального доступа большое количество каталогов / файлов, кажется, не проблема. Однако, если вы получаете доступ к нему через сеть, после нескольких сотен заметное снижение производительности (особенно при доступе с компьютеров Vista (в этом отношении XP на Windows Server с NTFS, по-видимому, работает намного быстрее)).
источник
Когда вы создаете папку с N записями, вы создаете список из N элементов на уровне файловой системы. Этот список является общесистемной общей структурой данных. Если вы затем начнете непрерывно изменять этот список, добавляя / удаляя записи, я ожидаю по крайней мере некоторой конкуренции за блокировку из-за общих данных. Это утверждение - теоретически - может негативно повлиять на производительность.
Для сценариев только для чтения я не могу представить причину снижения производительности каталогов с большим количеством записей.
источник
У меня был реальный опыт работы с около 100 000 файлов (каждый по несколько МБ) в NTFS в каталоге при копировании одной онлайн-библиотеки.
Открытие каталога с помощью Explorer или 7-zip занимает около 15 минут.
Написание копии сайта
winhttrack
всегда будет зависать через некоторое время. Это касается также каталога, содержащего около 1 000 000 файлов. Я думаю, что хуже всего то, что MFT может проходить только последовательно.Открытие того же самого под ext2fsd на ext3 дало почти такой же расчет времени. Вероятно, может помочь переход на reiserfs (не reiser4fs).
Попытка избежать этой ситуации, вероятно, является лучшей.
Для ваших собственных программ, использующих BLOB-объекты без любой fs, может быть полезным. Это то, что делает Facebook для хранения фотографий.
источник