Se eu estivesse nessa situação, estaria analisando um banco de dados que pode armazenar todos os dados em um único arquivo com um índice compacto e baseado em deslocamento, em vez de arquivos separados. Talvez um banco de dados que tenha um driver FUSE disponível para interagir com ele como arquivos quando necessário, sem que eles realmente sejam arquivos separados.
Como alternativa, você pode ver o percentil 60 a 70 do tamanho dos arquivos e tentar ajustá-lo diretamente aos nós da árvore do sistema de arquivos, em vez de blocos separados no disco. Armazenar 10k em cada nó é provavelmente uma grande pergunta, mas se você pudesse obter 60% -70% dos arquivos, provavelmente seria uma grande vitória.
Apenas alguns sistemas de arquivos podem fazer isso (reiserfs é um deles), e acho que tudo depende do tamanho do percentil, se ele caberá na árvore. Você pode ajustá-lo. Eu acho que tente encaixar o resto em um bloco.
E não se preocupe com periódicos; eles têm um limite de tamanho superior de qualquer maneira.