O número de arquivos afeta o desempenho do fsck?

3

Um disco de 100 GB com 1.000.000 de arquivos levará mais tempo do que um disco de 100 GB com 100 arquivos ao executar fsck ?

    
por IMB 11.04.2013 / 23:20

1 resposta

8

Isso depende do sistema de arquivos e dos switches usados com o fsck.

O que fsck verifica e tenta reparar dá uma explicação bem detalhada sobre o que o fsck faz quando invocado sem switches.

Algumas verificações demoram um tempo constante (por exemplo, verificação de superblocos), muitas delas dependem do número de inodes que o fsck deve processar (por exemplo, verificações de contagem de links), outras no tamanho do sistema de arquivos (por exemplo , verificações periódicas de blocos de dados).

Sem a opção -c , o fsck não verifica o conteúdo dos arquivos regulares, portanto, o tamanho dos arquivos é irrelevante. Mesmo ao verificar blocos inválidos, o tempo de execução só aumenta com o tamanho do sistema de arquivos. Qual parte da partição está ocupada não afeta o tempo de execução. 1

O número de inodes de um sistema de arquivos é constante, ou seja, , decidido no momento da criação. Os metadados de cada arquivo são armazenados em um desses inodes. De acordo com ext4 , inodes não utilizados são marcados como tal no ext4, mas não em ext3. Assim, o tempo de execução do fsck aumenta com a contagem de arquivos no ext4, mas é constante (e alto) no ext3.

A figura a seguir ilustra isso:

Observe que as diferentes contagens de arquivo são representadas por cores diferentes. Os gráficos para ext3 com 2,1 milhões, 100 mil e até mesmo zero arquivos são idênticos. O gráfico para ext4 com 2.1M e 100k arquivos, respectivamente, mostra uma diferença significativa.

Por outro lado, o tempo de execução aumenta com o número de inodes com ext3, enquanto o inode não utilizado não afeta o tempo de execução com o ext4.

1 Verificado empiricamente executando fsck -c em uma partição vazia.

    
por 11.04.2013 / 23:30