twitterfacebookgoogle pluslinkedinrss feedemail

quarta-feira, 4 de outubro de 2017

A Odisseia do SSD


Querendo melhorar a performance do meu laptop, encontro uma série de técnicas que envolve o Hardware e Software.
O aumento de performance utilizando o SSD é perceptível já na inicialização do sistema operacional.
Em Software, utilizo o sistema operacional Linux Mint e as dicas descritas envolve na maioria das vezes em diminuir a escrita em disco, assim aumentando a vida útil do SSD.
Abaixo segue os diversos posts nesta odisseia do SSD.

Começando com a instalação do SSD no Laptop.

As dicas de configuração que podem ser aplicadas no Mint, Ubuntu e Debian.
Verifique as dicas abaixo:
- SSD - Outras dicas para aumentar a vida útil

SSD - Limitar o uso de Memória SWAP (Swappiness)


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".

Esta dica é extremamente interessante.
Podendo otimizar a performance de servidores.
Vamos limitar o uso de memória virtual, alterando o valor para diminuir a utilização de memória swap e assim, diminuindo o acesso de escrita em disco.

O primeiro passo é verificar o valor que está limitado a utilização de memória swap.
Utilizando o seguinte comando:
cat /proc/sys/vm/swappiness
Swapp1.png
No meu caso, retornou o valor default que é 60.
A lógica é que quanto menor esse valor, na escala de 0-100, menor a utilização de memória swap.

Vamos editar o arquivo /etc/sysctl.conf.
sudo vi /etc/sysctl.conf

No final do arquivo, incluir as seguintes linhas:

# Limitar o SWAP
vm.swappiness=10

Swap2.png

Depois é só reiniciar o computador que a nova configuração estará produtiva.
Esta configuração é extremamente importante.
Imagine uma aplicação java, onde temos uma memória pré-alocada do servidor em 80%. Com a configuração default, sempre iremos fazer utilização de memória swap, onde irá degradar a performance do servidor e aplicação.
Limitando esse valor para 10, o Linux irá utilizar a memória swap quando o consumo de memória atingir 91%.

Depois de reiniciar, verificamos se a configuração teve efeito.
Swap3.png

SSD - Executar o TRIM

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".

O TRIM é um recurso de drive SSD mais recente, onde marca como inválido os blocos que foram apagados. Assim o SSD sabe que pode gravar novamente nestes blocos.
Sem o TRIM, o SSD teria que apagar o bloco para depois gravar a informação novamente, assim gerando ciclos de apagamento desnecessário e diminuindo a vida útil do seu SSD.

O primeiro passo para otimizar o TRIM é identificar se o seu SSD tem este recurso, para isso entramos com o seguinte comando em nosso terminal.
TRIM1.png

Pelo retorno acima, o meu SSD tem o recurso de TRIM.
“Data Set Management TRIM supported”

O comando para executar o TRIM é o fstrim e em distros Debian vem configurado uma execução semanal no crontab. (http://man7.org/linux/man-pages/man8/fstrim.8.html)
Dependendo da sua utilização do sistema, uma execução semanal de TRIM não é o suficiente. É recomendado alterar para uma execução diária.
Vamos verificar se tem a execução semanal do fstrim em nosso diretório do cron.
TRIM2.png

O parâmetro --all do fstrim executa o trim em todos file system que suportam o recurso.
Agora vamos mover o arquivo para o diretório de execução diária.
TRIM3.png

Agora é só reiniciar o seu computador que o recurso irá ser executado automaticamente.

Também podemos executar o recurso manualmente, utilizando o seguinte comando.

$ sudo fstrim -v /

Se você tiver mais de uma partição montada, adaptar o comando para executar em outras partições. Por exemplo na home:
$ fstrim -v /home

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.

SSD - Espaço reservado para overprovisioning do SSD

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".
O firmware do fabricante pode reservar uma quantidade de espaço do disco SSD para fazer o overprovisioning (OP).
O OP melhora a performance e frequentemente aumenta a resistência do SSD, ajudando o aumento da vida útil.
É comum deixar um espaço de 7% do seu drive SSD para overprovisioning, assim definimos um espaço “unallocated” para evitar que todo espaço de disco seja ocupado.
Abaixo o cálculo conforme o tamanho de seu drive SSD.

5.png

Na minha formatação do Linux Mint padrão, não tinha definido o espaço deslocado para o overprovisioning. Eu tive um trabalho em liberar o espaço da minha partição primária.
Para desmontar a partição e liberar espaço do meu drive “sda1”, tive que gravar um pendrive “bootável” utilizando o software YUMI para rodar o Ubuntu.

Yumi por coincidência é o nome do segundo gato de estimação que eu tenho. Como sou o terceiro dono dele (ou ele é meu dono?!), nunca soube exatamente a origem do nome dele. Acredito que como é normal no mundo dos felinos, a mulher que adotou o Yumi, primeiramente, não conseguiu identificar se o bicho era macho ou fêmea. Assim, dando o nome feminino japonês de Yumi.
Assim até hoje o Yumi é um felino macho com nome feminino.  
Não teve como não lembrar do gato quando tive que utilizar este software, agora posso mudar esta lenda do nome dele para que seja uma homenagem a esta ferramenta interessante que faz um pendrive “bootável”. Aliás, nem sei o motivo de comentar isto, mas como é um blog pessoal, vamos relaxar… Segue uma foto do Yumi felino para os curiosos.

Yumi.jpg

Link para fazer o download do Yumi, somente para Windows :(

Depois de fazer boot com o Ubuntu pelo pendrive, utilizamos a ferramenta “Gparted” para liberar espaço da partição primária.
Caso esteja lendo este artigo antes de ter instalado o sistema operacional, sua vida será mais fácil no momento realizar o particionamento, deixando o espaço para overprovisioning desalocado.
Utilizando o Gparted, desmontamos a partição principal e utilizamos a função “resize” para liberar espaço para o OP.
Segue abaixo o print do espaço “unallocated” reservado para overprovisioning.
6.png

Se fizer falta depois de um tempo este espaço reservado para o OP, podemos fazer um outro resize voltando espaço para a partição primária.

SSD - Outras dicas para aumentar a vida útil

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".

1 - Configurar a BIOS para utilizar a feature AHCI

Esta dica já foi exposta em meu artigo inicial de instalação do drive SSD.
Vale um reforço para verificar e ativar a feature de AHCI ao invés de IDE.
Existem relatos de BIOS que identifica o drive SSD automaticamente e aplica a melhor configuração para utilizar o drive SSD.
Como não existe um padrão de BIOS, onde posso indicar certamente onde está a configuração do SATA para trocar de IDE para AHCI, segue abaixo o print da minha BIOS com a alteração para você poder identificar em sua BIOS e realizar a alteração.

2.jpg

2 - Atualizar o firmware do seu drive SSD

Entrar no site do fabricante e verificar se tem alguma atualização de firmware para o seu SDD. Interessante realizar este procedimento quando comprar o drive e depois de um ano de utilização do mesmo.

Os primeiros drives SSD apresentaram diversos problemas pois a sua vida útil era diminuída drasticamente por eventos de escrita no drive.
Nas gerações atuais, os “danos” por evento de escrita ainda causam pequenas dores.
Assim é uma boa prática diminuir estes eventos para aumentar o tempo de vida de seu disco. Seguindo algumas destas dicas, podemos chegar em até 10 anos de duração de seu SSD.

3 - Utilizar o EXT4 como file system

A melhor opção de file system é o EXT4.
O journaling do EXT4 que gera um tipo log para evitar corrupção de dados, faz alguns eventos de escrita no SSD. Não desligue o journaling, ele não compromete a vida útil e este recurso é importante para evitar problemas em seu sistema de arquivos.
NÃO utilize o file system BTRFS! Ele gera diversos eventos de escrita no SSD, podendo comprometer a vida útil do seu sistema de arquivos.

SSD - Dica: Alinhamento das partições

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".

Há um bom tempo atrás, falavam que as partições do SSD deveriam ser alinhado antes de serem utilizadas.
Atualmente as versões do Ubuntu e Linux Mint, desde o Debian Wheezy, alinham e otimizam as partições e filesystems para 4096 bytes de page size. Não sendo mais necessário este procedimento.

Partições que não estão alinhados ocorre comumente quando fazem “clone” de um sistema operacional que não tem como default fazer o alinhamento de partição.

Para verificar se as partições estão alinhados, vamos utilizar a ferramenta “parted”.
Esta ferramenta tem uma função chamada “align-check” que verifica se as partições estão alinhados.
Abaixo tem o print de como utilizar o “parted”.
1.png

A partição “extended” retornou como não estando alinhado. Esta partição não precisa estar alinhado, que não são gravado dado nela e serve somente para criar outras partições lógicas.

Fazer esta verificação se as partições estão alinhados aumenta a performance não somente em drive SSD, mas de diversas aplicações em qualquer drive. Estudos de performance falam de um aumento em até 30% de reposta do disco em aplicações de banco de dados. Independente do sistema operacional, Windows ou Linux, vale a pena verificar se as partições estão alinhados e fazer o alinhamento para melhorar a performance.
 

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.