Назад | Перейти на главную страницу

Хранение 64000+ файлов и рост в одной папке (ext3)

Я использую каталог в качестве промежуточной области для своих файлов перед отправкой их в корзины Amazon S3. В этом промежуточном каталоге нет структуры подкаталогов / a / b / c или / год / месяц / день ... это только файлы /cdn/file1.png /cdn/file2.png и т. Д.

У меня около 64000 файлов в этом 1 каталоге, и его размер сейчас составляет 2,8 ГБ.

Мой вопрос: это сломается? Я знаю, что это не оптимально, и я работаю параллельно над исправлением этой проблемы, но для миграции может потребоваться время.

Я ожидаю, что так будет и в течение следующего года, а это значит, что в одном каталоге будет около 400 000 файлов.

мысли? Спасибо.

Это сработает. Возможно, вы не захотите запускать какие-либо пакетные операции с содержимым каталога. ls и такие перетянут. Я обычно использую Файловые системы XFS для каталогов с большим количеством файлов, не хранящихся в дереве ...

Например...

# mount
/dev/sdb1 on /app type xfs (rw,noatime,logbufs=8,logbsize=256k,nobarrier)

[root@Rizzo /app/prt]# ls -1 | wc -l
191487

[root@Rizzo /app/prt]# time du -skh .
27G     .

real    0m0.834s
user    0m0.236s
sys     0m0.566s

[root@Rizzo /app/prt]# time ls -lrta | tail -8
-rw-rw-rw-  1 PAB      PAB             733 Dec 15 11:48 09228885.TGZ
-rw-rw-rw-  1 PJD      PJD            8250 Dec 15 11:48 09228881.TGZ
-rw-rw-rw-  1 PJD      PJD            9803 Dec 15 11:48 09228881.LAY.TGZ
-rw-rw-rw-  1 PJD      PJD          127973 Dec 15 11:49 09228886.LAY
-rw-rw-rw-  1 PJD      PJD           31720 Dec 15 11:49 09228886.PRT
-rw-rw-rw-  1 PJD      PJD            5368 Dec 15 11:49 09228886.POF
drwxrwxrwx  3 PEB      SJS         5066752 Dec 15 11:49 .
-rw-rw-rw-  1 PJD      PJD           31726 Dec 15 11:49 09228886.TMP

real    0m2.673s
user    0m1.055s
sys     0m1.622s

Я узнал о преимуществах ZFS при работе с большим количеством файлов в файловой системе. Чтобы имитировать тесты ewwhite:

# ls -1 | wc -l
[...]
500982


# time du -skh .
303G    .

real    0m42.422s
user    0m3.889s
sys     0m25.546s

# time ls -lrta | tail -0
real    0m21.053s
user    0m5.503s
sys     0m15.496s

Это на машине Solaris с 6-дисковым массивом RAID10 SATA и 4 ГБ ОЗУ, так что ничего особенного. Каталог экспортируется через NFS на машины Linux, использующие его. Я не знаю, покажет ли реализация FUSE ZFS аналогичную производительность.

Основная причина, по которой мы не используем XFS, заключается в том, что у нас нет опыта работы с ним, но, как показывают цифры ewwhite, это может быть вполне приличным выбором.