Olá pessoal…
Hoje vou falar um pouco sobre a performance de discos SSD na distribuição 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.
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.
Boa noite Daniel, tudo bem?
Rapaz, faz tempo que não mexo com partições, e acho que não fez algo de errado, deve ser alguma configuração do openSUSE.
Quanto ao TRIM, parece que tem ativação automática sim, mas confira nesse link (ele mostra como conferir):
https://en.opensuse.org/SDB:SSD_performance#TRIM
Abraços.