Трябвало е да му сложиш индекси където трябва, твърде вероятно щеше да е обратното.
Правил съм подобен експеримент, да записвам голям брой малки файлове в различни поддиректории (индексирани на две нива по спомени, общият брой директории беше 65535). Пробвал съм с няколко файлови системи - ext2, ext3 и reiserfs. Различни mount опции малко или много помагаха при четенето или писането, но при ext2/3 не много трудно стигах до момента в който изгърмявах всичките inodes възможни за файловата система. Ако я форматираш с дефолтските опции, на около 100 гигабайт-ова ext3 файлова система свършваха още някъде при 30-40 милиона файла, може би по-рано, всичко това по спомени (с reiserfs нямах такива проблеми, там ползват някакъв механизъм за динамично allocate-ване на inodes или някаква подобна щуротия и лимитът е бая висок). Но най-големият проблем идваше при записването на нови файлове, понеже в някои директории файловете ставаха доста, демек не бяха особено балансирани по отношение на индексите и за някоя директория може да имаш десетки хиляди файлове, за друга - стотина. Оказа се че нито една от тези файлови системи не scale-ва много добре когато добавяш нови файлове в "голяма" директория - от един момент нататък производителността се срива брутално и когато искаш да запишеш един малък файл от 32 байта, чакаш доста. Има разни опции при монтиране или създаване на файловата система, които касаят организацията на dentry-тата, примерно в някакви техни дървета там, и те помагат, но до време - винаги от един момент нататък нещата се сговнят доволно добре. reiserfs се държа най-прилично апропо, но и той увяхна не много след ext3. А,да, не искам да звучи като реклама на reiserfs, защото точно по време на тези занимавки успях да скапя точно тази файлова система до невъзможност да я оправя.
Между другото, когато правех "bulk insert"-и, демек наливане на нови файлове, от един момент нататък, проблемът ми не беше точно I/O bandwidth-а, а точно overhead-а от VFS слоя, процесите ми бяха в iowait и утилизацията на cpu-то, доволно добра. Първоначално наливането на нови файлове си беше наистина I/O-интензивна операция, от един момент нататък (когато файловете ставаха прекалено много), повечето време отиваше в сметки в VFS слоя, това и без да гледам sar и top ми беше ясно, по стърженето на харддиска

Накрая отебах опитите да се занимавам с файлови системи и реших да ползвам mysql. Но пък един пич след това постигна доста повече (не милиони, а милиарди файлове, но индексите му бяха на 3 нива и изпълнението беше върху NTFS - не знам може пък NTFS да се държи по-добре за такива случаи).
А, при тебе файловата система ти е също и NFS export...ехех