存储64000多个文件,并在一个文件夹(ext3)

在将文件传送到Amazon S3存储桶之前,我正在使用目录作为文件的暂存区域。 这个暂存目录没有子目录结构/ a / b / c或/ year / month / day …它只是文件/cdn/file1.png /cdn/file2.png等。

我在这个目录中有大约64,000个文件,现在它的大小是2.8GB。

我的问题是,这会打破吗? 我知道这不是最佳的,我正在并行工作来解决这个问题,但这可能需要时间来迁移。

我期待这样的一年,这意味着在一个目录内总共大约40万个文件。

想法? 谢谢。

它会工作。 您可能不希望对目录的内容执行任何批处理操作。 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 

这是在一台带有6个磁盘的RAID10 SATAarrays和4GB内存的Solaris机器上,所以没什么特别的。 目录通过NFS导出到使用它的Linux机器上。 我不知道FUSE ZFS实现是否会显示类似的性能

我们不使用XFS的主要原因是因为我们没有任何经验,但正如ewwhite的数字所显示的,这可能是一个相当不错的select。