quarta-feira, 4 de outubro de 2017

SSD - Noatime

Este Post faz parte de uma série de dicas para melhorar a performance e vida útil do drive SSD. Vide o post "A Odisseia do SSD".
 
A maioria das dicas de performance no SSD estão relacionadas com evitar gravação no disco. Esta dica é bem interessante e pode ser utilizada para melhorar a performance de sistemas que fazem muito acesso de leitura de arquivos em disco. Não é aplicável somente para drives SSD, podendo ser utilizado em todos os discos.

O noatime é um parâmetro para definir que o sistema operacional não grave o "access time stamp", que é a data na qual o arquivo foi acessado.
Esta informação é gravada na estrutura de “inode” dos arquivos.
Inodes são estruturas responsáveis por conter informações básicas sobre arquivos e pastas, tais como: permissões de acesso; identificação de donos dos arquivos; data e hora do último acesso e alterações; tamanho e o mais importante, os famosos ponteiros para o arquivo em si. Podemos dizer, que por conter informações únicas, o inode é a identidade de um arquivo ou diretório.

Vamos ilustrar como o OS altera a data de acesso no inode.
Vamos pegar como exemplo o arquivo wodim.conf.
Através do comando  ls -lhi wodim.conf, conseguimos o id do inode, que no caso é 2883827.
Utilizando o utilitário debugfs, passando o id do inode, conseguimos as informações.
Abaixo a imagem de como utilizar os comandos.

notime1.png

Podemos visualizar o “atime” do arquivo wodim.conf como sendo 09/01/2007.
Faz um bom tempo que este arquivo não é acessado.
Quando o sistema operacional, usuário, processo faz algum acesso a este arquivo, esta data é gravada com a data atual. Assim, gerando um evento de gravação em nosso sistema de arquivos.

noteim2.png

Agora vamos acessar o arquivo wodim.conf com o comando cat.
Retornando o conteúdo do arquivo o inode de atime será alterado para a data atual.

atime3.png

Executamos o comando debugfs novamente no arquivo wodim.conf e identificamos que a data “atime” foi atualizada com a data atual.
notime5.png

Com o exemplo acima, identificamos como o OS altera a informação do inode para cada acesso ao arquivo.
Imagina o quanto podemos “economizar” em escrita em disco desativando este recurso do Linux.

Para desativar o recurso de gravar a data de atime, editamos o arquivo /etc/fstab.
Na linha de comando digitamos o comando “sudo vi /etc/fstab”.
Eu utilizo o vi como editor de texto, podendo o freguês escolher o editor que tem familiaridade.
noATIMEULTIMO.png

Preste bastante atenção nos procedimentos abaixo!
Agora colocamos a palavra noatime na linha da sua partição primária, antes das palavras “errors=remount-ro”. Não adicione este comando na sua partição swap.
Exemplo:
UUID=xxxxxxx / ext4 noatime,errors=remount-ro 0 1
=> Não existe espaço entre a “,” e a palavra noatime, ficando “noatime,errors”. Preste bastante atenção, se digitar de forma diferente, irá ocorrer erros no boot do sistema operacional.

Depois de alterar o arquivo, reinicialize o sistema operacional e faça o teste que apresentamos acima, para verificar se está atualizando o campo atime no inode do arquivo.

Nenhum comentário:

Postar um comentário

 

Cadastrar Email

Sobre o Blog

Neste blog irei compartilhar as minhas experiências e observações. Os temas serão variados, mas com ênfase em tecnologia. Inscreva-se nos nossos canais para receber atualizações.