Desativando o atime em um sistema de arquivos

27

Estou configurando um conjunto de réplicas do mongoDB e uma das primeiras coisas que devo fazer é desativar o atime no sistema de arquivos. Depois de pesquisar um pouco sobre isso, não sou contra, mas tenho que perguntar: o que usa atime? Eu procurei nas interwebs e encontrei muito pouco no caminho de "esse aplicativo ou esse processo usa atime e você seria estúpido se desligasse" tipos de avisos, mas, sendo uma pessoa paranóica por natureza, tenho que me perguntar.

Então, o que usa atime e se eu desligá-lo, o que poderia quebrar?

QWade
fonte

Respostas:

25

mutt, um cliente de email, usa os tempos de acesso ao arquivo para monitorar novos emails que chegam em uma caixa de correio no formato mbox. Aparentemente, esse problema não é grave e é fácil de contornar .

Fora isso, é difícil encontrar exemplos de coisas que surgem noatime. Eu corro vários servidores Linux noatimeem todos os sistemas de arquivos e não me lembro de ter visto nenhum problema atribuível noatime.

Se você está preocupado com o uso noatimeem geral, você pode dedicar um sistema de arquivos separado para o seu material mongoDB e montar apenas esse sistema de arquivos noatime.

EDITAR

Encontrei um blog interessante em kerneltrap.org que cita algumas discussões entre desenvolvedores de Linux (Linus Torvalds, Ingo Molnar, Alan Cox e outros) sobre o tópico atime. No segundo email de Ingo, ele diz o seguinte:

... eu não tenho nenhuma reclamação real sobre ext3 - com a qualificação obrigatória de que "noatime, nodiratime" no / etc / fstab é uma obrigação. Isso acelera as coisas de maneira muito visível - especialmente quando muitos arquivos são acessados. É meio estranho que todos os desktops e servidores Linux sejam afetados por uma notável diminuição no desempenho de IO devido às constantes atualizações de atime, enquanto há apenas dois usuários reais: tmpwatch [que pode ser configurado para usar ctime, para que não seja um grande problema] e algumas ferramentas de backup. (Ok, e-mail também, eu acho.) Entre dezenas de milhares de aplicativos. Portanto, para a maioria das cargas de trabalho de arquivos, oferecemos ao Windows uma margem de desempenho de 20% a 30%, quase sem nada.

Steven segunda-feira
fonte
10

As ferramentas que pesquisam o uso de arquivos, como limpadores de arquivos temporários, o utilizam. Você pode contornar isso em alguns sistemas de arquivos e sistemas operacionais usando relatime, em vez disso, que somente atualiza o atime após o término de uma determinada duração desde a última atualização.

Ignacio Vazquez-Abrams
fonte
8

Você também pode criar um ponto de montagem separado para seu conjunto de réplicas do mongoDB. Você pode definir o parâmetro noatime nesse ponto de montagem apenas sem afetar outros programas.

Francois Wolmarans
fonte
4

Como acompanhamento aqui, relatimefoi feito o padrão no kernel no 2.6.30, que foi lançado por volta do período de março de 2009. Isso significa que os ganhos que você vê nas configurações do noatime serão menores em qualquer kernel moderno.

Ainda é uma recomendação, porque ainda há um ganho de desempenho para o MongoDB, mas enquanto você estiver em uma versão do kernel razoavelmente atual, ela não será tão essencial quanto antes.

Além disso, além do software mencionado aqui, também vi atime usado por ferramentas de backup.

Adam C
fonte
1

Gostaria apenas de enfatizar um ponto @Steven Monday - use um sistema de arquivos separado.

Para um banco de dados, essa é sempre uma boa opção e oferece muito mais flexibilidade no ajuste do desempenho do banco de dados com a pequena inconveniência de um ponto de montagem extra para gerenciar. Geralmente, você terá mais opções para capturar instantaneamente o banco de dados para backups (ainda mais útil nos casos em que você pode capturar e fazer backup da réplica em vez do mestre)

DisabledLeopard
fonte