Eu tenho um único servidor executando algum código que cria milhões de pequenos arquivos em um único diretório. No início, o código é executado extremamente rápido. Depois de um dia ou mais, ele começa a desacelerar um pouco. Estou tentando descobrir se isso é um problema com o código ou se é um problema com o número de arquivos no diretório.
O próprio código cria um arquivo se não existir, então abre o arquivo e grava uma única linha nele. Se o arquivo existir, ele abrirá o arquivo e anexará uma única linha a ele.
Dito isso, tenho feito benchmarking do meu código e feito as alterações necessárias, mas gostaria de fazer benchmarking do XFS também para ver se esse é o gargalo. Minha pergunta é: como faço para comparar o desempenho de leitura/gravação do XFS?
Comece com seu aplicativo e entenda como ele funciona.
xfsslower
ebioslower
perf record
para que você possa ver o que está em alta na CPU com visualizações de gráfico de chama. Experimente com símbolos de depuração para programas do kernel e do usuário.Milhões de arquivos em um diretório geralmente não é uma boa ideia. Mesmo que seja suportado, você obtém metadados de diretório gigantes que levam muito tempo para serem listados. Considere seu aplicativo criando uma estrutura de diretórios que limita os arquivos por diretório a alguns milhares.