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.
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
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.
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.Tags performance fsck jfs linux filesystems