Melhorar Performance de discos SSD no OpenSUSE

Olá pessoal…

Hoje vou falar um pouco sobre a performance de discos SSD na distribuição OpenSUSE.


OpenSUSE

OpenSUSE

Para maximizar a performance e a durabilidade, segue abaixo algumas escolhas e softwares importantes:

TRIM
Para mais informações sobre TRIM consulte o artigo wiki em SSD Discard Support.

Intel SSD
Há um bug no firmware antigo Intel SSD, que fará com que haja paradas quando o daemon smartd está em execução, que é ativado por padrão. Para resolvê-lo, atualize o firmware através do link intel.com/go/ssdfirmware/.

Sistemas de Arquivos
Os sistemas de arquivos que funcionam melhor com drives SSD são Btrfs e EXT4. No entanto, o Btrfs ainda é experimental, assim Ext4 é a escolha mais segura.

No entanto, se você pretende executar Tumbleweed os kernels mais recentes do que o padrão no openSUSE 11.4 provavelmente irá começar a oferecer melhor desempenho em Btrfs que Ext4 enquanto este sistema de arquivos amadurece.

Neste artigo vamos supor que /dev/sda é o seu SSD.

Criar Sistemas de Arquivos TMPFS
É altamente recomendável para colocar as partes mais voláteis de seus dados em um TMPFS – isso inclui especialmente o diretório / tmp. Este diretório contém apenas os arquivos temporários que são apagados após a reinicialização. Tendo isto em memória é uma excelente maneira de salvar o seu SSD de algum trabalho. Note que se você manter o sistema funcionando por um longo tempo, o tamanho deste diretório (daí o seu uso de memória) pode aumentar gradativamente. Recomenda-se que saia da sua DE, remova o conteúdo e login novamente se você estiver enfrentando pressão de memória.

Monte o /tmp em um sistema de arquivos tmpfs:

# mkdir -p /etc/systemd/system/local-fs.target.wants
# ln -s /usr/lib/systemd/system/tmp.mount /etc/systemd/system/local-fs.target.wants/tmp.mount

Isto irá criar a pasta / tmp na memória em uma nova inicialização.

No openSUSE 12.2 o procedimento deve ser um pouco diferente:

Comece por criar diretório (s) para a configuração personalizada, por exemplo.

# mkdir -p /etc/systemd/system/local-fs.target.wants

Crie um arquivo de unidade para systemd (usando o vi ou o seu editor de preferência):

# vi /etc/systemd/system/tmp.mount

Copie e cole o texto abaixo (para colar em vi: i seguido por Shift-Ins), em seguida, salve (em vi:: wq).

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Temporary Directory
Documentation=man:hier(7)
Before=local-fs.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime

Finalmente, crie o link simbólico, da mesma forma como acima:

# ln -s /etc/systemd/system/tmp.mount /etc/systemd/system/local-fs.target.wants/

A segunda mudança que você deve fazer em fstab é certificar-se de que o seu SSD tem a opção noatime:

/dev/sda1    /  ext4   noatime,defaults  0       1

O noatime pode quebrar algumas ferramentas de backup, use então:

relatime

Caso queira otimizar mais, abaixo segue outras sugestões.
Ajustando o Kernel
É recomendável que você alterar o agendador padrão de cfq para o deadline, mas apenas para discos não-rotativo.

# vi /etc/udev/rules.d/60-sched.rules

Abaixo o conteúdo:

#set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

readahead
Você pode desativar o readahead, pois é bastante inútil em SSDs com seus tempos mínimos de pesquisas.

# systemctl disable systemd-readahead-collect.service
# systemctl disable systemd-readahead-replay.service

Desabilitar o SWAP no SSD
A maioria dos computadores modernos, possuem 2GB ou mais de memória RAM e raramente usam o espaço de swap, a menos que eles precisem para armazenar os dados na unidade (tal como o recurso de hibernação). O que se segue é uma dica que irá reduzir a quantidade de gravações para a área de swap para ajudar a prevenir o SSD do desgaste.

# echo 1 > /proc/sys/vm/swappiness

Ou se você deseja torná-lo permanente você pode adicionar as seguintes linhas ao /etc/sysctl.d/99-sysctl.conf

vm.swappiness=1
vm.vfs_cache_pressure=50

Referências:
opensuse.org

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Eu coloquei o /tmp /var /home e a particção SWAP em um HDD e deixei no SSD somente a /efi e / ou seja o sistema em si (tumbleweed) no SSD com Btrfs em tudo, exceto na /home que já era ext4 e não pude formata-la por ter meus dados, e /efi pq pede que seja FAT32… Fiz algo errado? Você sabe se o Tumbleweed já tem o TRIM ativo para SSDs? Caso não tenha, você sabe como ativar? Obrigado pelo post, muito detalhado e rico!
    PS: Sou novo no OpenSUSE… Mas to gostando. Meu problema é que tem um processo Btrfs-alguma coisa que passa no sistema deixando tudo travado pq toma todo o processamento da maquina. Não conhecia isso.

Deixe uma resposta

Terminal de Informação