У меня есть веб-сайт, который я проверяю на предмет проблем с производительностью и ошибок, и я наткнулся на кеширующий код, который кэширует тысячи файлов в один каталог.
Я понимаю, что это нехорошо, что количество операций ввода-вывода ухудшится, и я также слышал о потенциальной проблеме с инодами.
И я знаю, как исправить кеширующий код, но дело в том, что на этом этапе исправление будет очень дорогим.
Вопрос : Каков сценарий наихудшего случая, если я буду жить так, как сейчас? Как будет с сайтом? (сейчас этот единственный каталог кэша содержит 400К файлов)
Я новичок в Ubuntu. И я понимаю, что это может быть не по теме. Но я думаю, что это «системный» вопрос, и он не относится к «программной» части стекового потока.
Спасибо!
ОБНОВЛЕНИЕ: Файловая система UFS
UFS работает с inode, поэтому максимальное количество файлов зависит от установленного отношения inode к пространству. И это намного больше, чем 400 тысяч.
2 задачи:
Создание новых файлов займет все больше и больше времени.
Вы также столкнетесь с другими проблемами: ls
выдаст ошибку с Argument list too long.
, так как расширит все файлы (ls -l *
превратится в ls -l file1 file2 file3 file4 etc etc
. То же самое касается rm
и некоторых других). команды.
Я знаю, вам это не понравится, но ... лучше использовать подкаталоги. Да, это может быть чертовски много работы, но вы должны закончить до того, чтобы сделать это в любом случае. Лучше быть готовым сейчас, когда у вас есть время, чем после сбоя сервера.
Альтернатива: - проанализировать, можете ли вы отбросить некоторые файлы и не кэшировать их.