Хранение тысяч файлов в одном каталоге

У меня есть веб-сайт, который я проверяю на предмет проблем с производительностью и ошибок, и я наткнулся на кеширующий код, который кэширует тысячи файлов в один каталог.

Я понимаю, что это нехорошо, что количество операций ввода-вывода ухудшится, и я также слышал о потенциальной проблеме с инодами.

И я знаю, как исправить кеширующий код, но дело в том, что на этом этапе исправление будет очень дорогим.

Вопрос : Каков сценарий наихудшего случая, если я буду жить так, как сейчас? Как будет с сайтом? (сейчас этот единственный каталог кэша содержит 400К файлов)

Я новичок в Ubuntu. И я понимаю, что это может быть не по теме. Но я думаю, что это «системный» вопрос, и он не относится к «программной» части стекового потока.

Спасибо!

ОБНОВЛЕНИЕ: Файловая система UFS

1
задан 31 January 2013 в 19:50

1 ответ

UFS работает с inode, поэтому максимальное количество файлов зависит от установленного отношения inode к пространству. И это намного больше, чем 400 тысяч.

2 задачи:

  • Создание новых файлов займет все больше и больше времени.

  • Вы также столкнетесь с другими проблемами: ls выдаст ошибку с Argument list too long., так как расширит все файлы (ls -l * превратится в ls -l file1 file2 file3 file4 etc etc. То же самое касается rm и некоторых других). команды.

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

Альтернатива: - проанализировать, можете ли вы отбросить некоторые файлы и не кэшировать их.

0
ответ дан 31 January 2013 в 19:50

Другие вопросы по тегам:

Похожие вопросы: