Inicialização lenta, como programar o fsck para rodar como um cron job?

2

Às vezes, meu servidor da web falha e pode levar horas para ser inicializado. Foi-me dito que fsck pode ser o culpado, porque ele só pode ser executado durante a inicialização, só é executado após X dias e montagens em Y, e se o servidor estiver ativo por muito tempo, na próxima reinicialização ele será com certeza seja lento.

Então, o que posso fazer para corrigir isso? Eu encontrei tune2fs . Mas vou precisar coordenar isso com um cronjob de reinicialização? Digamos que eu faça tune2fs -i 1w /dev/sda1 . Eu tenho medo que, se eu definir um cron para ser executado após essa data (que eu posso obter com -l ), nas datas a seguir eles ficarão fora de sincronia, não serão?

Outra coisa que não está clara: após uma falha, o fsck será executado de qualquer maneira, não importa o quê? Deveria? Ainda será lento, mesmo que tenha sido feito há menos de uma semana?

    
por ChocoDeveloper 20.11.2012 / 00:12

1 resposta

5

tl; dr: Dê uma olhada nos seus registros do sistema, ou use algo como bootlogd , isso deve mostrar onde a desaceleração está ocorrendo. Minha aposta seria que não é fsck .

Em primeiro lugar, fsck pode ser executado sempre, não precisa ser executado na inicialização. O que você provavelmente está se referindo é que ele só pode ser executado em um sistema de arquivos desmontado, e como / e outros sistemas de arquivos são montados quando o sistema está totalmente operacional, esse é o único momento possível para executá-lo em <<> / em> sistemas de arquivos.

fsck não deve levar horas para ser concluído se estiver apenas fazendo uma verificação regular, a menos que encontre inconsistências no sistema de arquivos e tenha que consertá-las (mas mesmo assim, uma hora soa altamente improvável, mesmo em um sistema de arquivos grande com inúmeras inconsistências). Dê uma olhada nos seus logs do sistema, ou use algo como bootlogd , isso deve mostrar onde a lentidão está ocorrendo. Minha aposta seria que não é fsck .

Sistemas de arquivos podem desenvolver inconsistências sem nenhum efeito colateral perceptível, essa é a finalidade das verificações regulares de fsck , independentemente de o sistema de arquivos estar marcado como sujo.

Você não pode desmontar seu sistema de arquivos raiz enquanto o sistema estiver em execução, pois ele estará em uso, portanto você não pode executar fsck nele, portanto não há como executar corretamente uma tarefa cron para fazê-lo. Seria possível forçar um fsck em uma reinicialização em determinadas datas e, em seguida, reinicializar, mas não vejo realmente o ponto. Eu realmente não entendo o que você quer dizer com "fora de sincronia".

Após uma falha, fsck será executado em qualquer sistema de arquivos sujo, ou seja, sistemas de arquivos que não foram desmontados corretamente. Se o seu computador travasse durante a operação normal, portanto, sim, fsck seria executado. Se o seu computador travou no estágio final do desligamento, provavelmente não, já que os sistemas de arquivos não teriam sido comprometidos.

    
por 20.11.2012 / 00:21

Tags