Por que o kjournald é extremamente ativo em um sistema de arquivos quase inativo?

1

Nota: Esta é uma pergunta "documentando meu processo" para a qual escreverei uma resposta. Felizmente, serverfault já me ajudou a resolver isso, porque escrever minha situação para que os outros pudessem avaliar me fez perceber o que estava acontecendo.

  1. Estou usando o sistema de arquivos ext3 em um servidor Debian.
  2. Apesar de muito pouca atividade acontecer no meu sistema de arquivos principal com relação a arquivos , há uma tremenda atividade de kjournald (visto via iotop ).
  3. Esta atividade vem em explosões periódicas que aumentam minha média geral de gravações para cerca de 2 MB / s (o que é de grande preocupação para mim porque gostaria de obter alguns SSDs e essa taxa é realmente suficiente para ameaçar seriamente o muito generoso escreva resistência dos modelos atuais).
  4. Eu já fiz o sistema de arquivos em questão montar com noatime,nodiratime .
  5. Eu já aumentei o intervalo de confirmação de diário do sistema de arquivos de 5 segundos para 300 segundos.

O que está acontecendo? (Spoilers: era uma coisa do espaço do usuário. Estou escrevendo isso principalmente para destacar os problemas subjacentes possivelmente contra-intuitivos.)

    
por chaos 25.01.2013 / 16:22

1 resposta

1

Veja, o que aconteceu é que o aplicativo principal que é executado nesse servidor gerencia uma árvore de diretórios extremamente grande e populada e grava arquivos nessa árvore com propriedade e permissões um pouco abaixo do ideal. Como é bastante desagradável fazer com que esse aplicativo mude isso, e os arquivos precisam que sua propriedade e suas permissões sejam consertadas razoavelmente rapidamente (algum atraso é bom, mas não muito), eu configurei um cron job para, a cada minuto, lançar uma massa chown -R e chmod -R na grande árvore de diretórios bem preenchida. Tudo parecia continuar correndo enquanto isso estava acontecendo, então eu disse, é exagero, mas funciona, eu vou viver com isso.

No entanto. Acontece que, quando você faz um chown ou chmod , ele registra metadados do sistema de arquivos ext journalable independentemente de ter ocorrido alguma alteração . Portanto, nada ou quase nada estava realmente mudando no sistema de arquivos, mas imensa quantidade de metadados foi gerada, o que fez com que o disco saísse do disco quando o diário era confirmado. Opa.

Então, alterei as tarefas chown e chmod para find que realmente procuram arquivos que precisam ser alterados antes de alterá-los, e as gravações médias passaram de 2 MB / s para talvez 50 kB / s. Yay.

    
por 25.01.2013 / 16:29