1

Я написал ужасно быструю и грязную систему кеширования для веб-сайта поиска видео, которая gzips и кеширует результаты поиска в скрытой директории "/cache/".

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

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

Я удалил около 10 000 файлов кэша (которые были старше 1 месяца или пустые с точки зрения результатов), и теперь все, кажется, снова работает без сбоев.

Очевидно, что в ближайшем будущем мне придется написать правильную систему кэширования MySQL, но может ли такое большое количество файлов в одном каталоге вообще вызвать сбой CentOS?

Может быть, вытащить кэшированный файл и разархивировать его просто слишком много?

У меня есть механизм, который предупреждает меня, когда загрузка не проходит гладко. Сервер bing не блокирует меня, я действительно получаю результаты, я просто не могу их кэшировать (иногда), когда количество файлов в папке кэша становится "слишком большим".

Все идеи / комментарии приветствуются!

3 ответа3

2

Это зависит от того, какую файловую систему вы используете. Я полагаю, что ext2 и ext3, например, ограничены 32000 подпапок (у вас может быть столько файлов или больше, но производительность пострадает ...); ext4 вдвое больше, а некоторые другие допускают большее или неограниченное количество. См. Этот вопрос о сбое сервера для обсуждения и ответа, охватывающего различные типы файловых систем Linux.

0

Я видел противоположное на FC7 и на Ubuntu, где каталоги обрабатывают более 100K файлов без проблем. Вместо этого возникает проблема, когда количество подкаталогов составляет 32 КБ или более, но не только файлов.

Поскольку вы говорите, что это решение было "ужасно быстрым и грязным", возможно, проблема не в CentOS, а в вашем коде? Или даже на языке, который вы используете? Возможно ли, что ваш код пытается удерживать все эти файлы открытыми одновременно, чтобы у него не было файловых дескрипторов или какого-то такого ресурса?

0

Реальный ответ связан с плохим API Bing - см. Эту ветку на официальном форуме Bing API 2.0: http://www.bing.com/community/Developer/f/12254/t/662869.aspx.

По сути, они случайным образом скрывают результаты для случайных поисковых запросов, заставляя вас заходить на их серверы вдвое сильнее, чем требуется для получения информации от них. Так как ответ "нет результатов" много раз действительно дает результаты, вы должны проверить еще раз.

Спасибо всем за ваш вклад!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .