JFS: tempo de fsck longo em um sistema de arquivos grande?

1

Ocorreu recentemente uma falha de energia que derrubou um dos meus servidores. Na reinicialização, o sistema de arquivos de armazenamento principal - JFS em um sistema de arquivos de 7TB (9x1TB RAID6) - precisava de um fsck antes da montagem de leitura-gravação. Depois que eu iniciei o fsck, observei por algum tempo que o uso de memória alta estava aumentando constantemente (mas não muito rapidamente), e o uso da CPU estava atrelado a ou próximo a 100%.

Agora, cerca de 12 horas, o processo fsck consumiu quase 94% dos 4 GB de memória no sistema e o uso da CPU caiu para cerca de 2%. O processo ainda está em execução (e não fornece indicações quanto a mais tempo de execução).

Primeiro: isso é indicativo de um problema? Estou preocupado com o fato de que o uso da CPU tenha caído tão drasticamente - parece quase como se o processo tivesse ficado ligado à memória, e o fsck levará uma eternidade para ser concluído, porque está gastando todo o seu tempo trocando. (Eu notei que o kswapd0 está flutuando desconfortavelmente perto do topo da lista no topo, na verdade batendo o processo fsck para uso da CPU mais da metade do tempo.) Se este não for o caso, se o fsck diminuir a velocidade da CPU perto do final do processo, tudo bem - eu só preciso saber disso.

Se isso for um problema, o que posso fazer para melhorar o desempenho do fsck? Estou aberto a quase tudo, até e inclusive "compre mais memória para o sistema".

A linha relevante da parte superior:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
 5201 root      20   0 58.1g 3.6g  128 D    2 93.8   1071:27 fsck.jfs

E o resultado de free -m:

             total       used       free     shared    buffers     cached 
Mem:          3959       3932         26          0          0          6 
-/+ buffers/cache:       3925         33 
Swap:          964        482        482
    
por Tim 25.06.2010 / 08:27

2 respostas

0

Com base no uso de memória virtual, imaginei que seria impossível executar um fsck completo no volume em qualquer quantidade de tempo razoável (mesmo com RAM extra), então fiz backup de todos os arquivos no volume e reformatei com o XFS.

    
por 27.06.2010 / 18:58
2

Corrija-me se estiver errado, mas o JFS não é um sistema de arquivos de diário completo: ele só lida com os metadados no diário. Isso significa que o comando fsck levará muito tempo para ser concluído se você tiver muitos dados.

Sugiro que você investigue a possibilidade de mudar para um sistema de arquivos com diário completo (etx3 / 4): isso deve remover a necessidade de o comando ser executado em caso de falha abrupta.

    
por 25.06.2010 / 11:45