Desempenho do tar em um jfs2 com muitos arquivos pequenos

2

Observando a saída do comando tar (-v flag) - observação pelo olho humano - parece ser bem mais lento quando é executado dentro de um subdiretório com cerca de quatrocentos mil pequenos arquivos (400000), existem outros subdiretórios dentro deste subdiretório com outros milhares de arquivos pequenos.

Quando tar começa a empacotar esses subdiretórios, podemos ver cada arquivo relatado por tar , um por um, levando cerca de 1 a 2 segundos entre eles, é incrivelmente lento considerando arquivos pequenos como alguns bytes ou dúzias de KBytes de tamanho.

Este sistema de arquivos está usando o jfs2 e é hospedado por um sistema AIX 7.1. Ele é armazenado em um sistema de armazenamento usando algum tipo de modo RAID de redundância baseado em dispositivos SSD ("discos rígidos de estado sólido"). Não há alertas ou qualquer tipo de problema relatado neste sistema de armazenamento.

Muitos testes foram feitos, enviando e não enviando o pacote tar para um dispositivo de fita ou um arquivo normal, mas o teste a seguir é suficiente para observar essa lentidão inesperada:

tar -cvf /dev/null .

Como o jfs2 trabalha para lidar com muitos arquivos pequenos? É algo que pode ser trabalhado ao configurar um sistema de arquivos jfs2? Como tar lida com esse tipo de estrutura de arquivos?

EDIT: informações de concorrência

Também foram feitos testes executando-os simultaneamente e não simultaneamente com outros serviços neste FS ou em todo o sistema. Mas isso não muda a lentidão, toda vez que o comando tar começa a lidar com os subdiretórios com muitos arquivos, ele se comporta mais lentamente do que antes, nunca.

    
por Luciano 30.08.2017 / 15:26

0 respostas