Влияние на производительность хранения более 600 000 изображений в одной папке (NTFS) - PullRequest
8 голосов
/ 13 апреля 2010

Мне нужно хранить около 600 000 изображений на веб-сервере, использующем NTFS. Мне лучше хранить изображения в виде 20 000 фрагментов в подпапках? (Windows Server 2008)

Я обеспокоен накладными расходами операционной системы при получении образа

Ответы [ 3 ]

6 голосов
/ 13 апреля 2010

Перейти на это. Если у вас есть внешний индекс и прямой путь к каждому файлу без указания содержимого каталога , то все в порядке.

У меня есть папка размером более 500 ГБ с более чем 4 миллионами папок (в которых больше папок и файлов). У меня где-то порядка 10 миллионов файлов.

Если я случайно открою эту папку в проводнике Windows, она зависнет при 100% загрузке процессора (для одного ядра), пока я не убью процесс. Но пока вы напрямую ссылаетесь на производительность файлов / папок (это означает, что я могу получить доступ к любому из этих 10 миллионов файлов без дополнительных затрат)

3 голосов
/ 13 апреля 2010

В зависимости от того, имеет ли NTFS индексы каталогов, все должно быть в порядке с уровня приложения .

Я имею в виду, что открытие файлов по имени, удаление, переименование и т. Д. Программным образом должно работать хорошо.

Но проблема всегда в инструментах. Сторонние инструменты (такие как MS explorer, ваше средство резервного копирования и т. Д.), Вероятно, будут отстойными или, по крайней мере, крайне непригодными для использования с большим количеством файлов в каталоге.

Все, что выполняет сканирование каталогов, может быть довольно медленным, но, что еще хуже, некоторые из этих инструментов имеют плохие алгоритмы, которые не масштабируются даже до скромного (10k +) количества файлов в каталоге.

1 голос
/ 13 апреля 2010

В папках NTFS хранится индексный файл со ссылками на все его содержимое. При большом количестве изображений этот файл значительно увеличится и отрицательно скажется на вашей производительности. Так что, да, только на этом аргументе вам лучше хранить куски в подпапках. Фрагменты внутри указателей - это боль.

...