如何“快速”创build300M文件和16M目录?

我有一个由2个hex数字定义的3级目录结构,如下所示:

0A/FF/2B/someimagefile.gif 

我在1.5TB的压缩文件中有300M的小文件,这些文件将会填充这些目录(我们将来会有更多的文件出现,所以我select了目录结构来防止大量的文件崩溃到一个典型的extX文件系统)。

解压缩这些文件的速度为每秒1MB(或约18天解包)。 Ouchie!

我想这是慢的,因为我正在创build目录结构,然后是文件(从Java API完成)。 所以我开始只在bash循环中创build目录结构。

单独的目录是以目前的速度大约5天的任务。

任何关于提高这个速度的想法?


UPDATE

这个难题的一部分是用perl而不是bash来解决的,创build目录的速度提高了200多倍,现在这个操作可以让你rest一下,而不是延长周末rest时间。

但文件创build仍然非常缓慢,即使不需要创build目录。

我最后的回答是:“不要这样做”。

创build许多小文件时,我无法find超过2Mbytes / sec的速度。 对于terrabyte的数据量来说,这太过惯性了。

我们正在关注facebook的脚步,并将这些文件转储到二进制数据存储中(或者使用大量的带有BLOB的mysql / myisam表,现在正在进行试验……)。

这有点复杂,但是消除了与小文件相关的随机查找问题,而且我可以在几个小时或一天内处理大量的数据,而不是几周。

MongoDB已经成为调查的另一个好select。

用noatime,nodiratime选项重新挂载文件系统