Quais etapas devem ser tomadas antes/durante/após a instalação do Ubuntu em um Solid State Drive para otimizar o desempenho e garantir a máxima durabilidade da unidade?
Eu usei com sucesso várias técnicas diferentes para melhorar a maneira como o Ubuntu usa o dispositivo de armazenamento, seja ele de estado sólido ou tradicional.
Para SSDs, você procura minimizar o número de vezes que a unidade é gravada, pois as leituras não devem adicionar desgaste à unidade.
1) Gerenciar o arquivo de troca
Se você não hibernar seu computador e tiver uma ampla memória RAM para executar todos os seus aplicativos, então, em tese, não será necessária uma partição swap.
Se você tiver uma combinação de SSDs e discos rígidos, coloque sua partição de swap somente nos discos rígidos.
2) Nenhuma Gravação para Leitura de Data e Hora (adequada para SSDs e discos rígidos)
Montando suas partições com as opções noatime e nodiratime irá parar as gravações de timestamp quando você lê arquivos e pastas. Essas gravações de registro de data e hora geralmente não são necessárias, a menos que você use um cliente de servidor de correio local, como o mutt. A razão pela qual isso geralmente é uma má ideia, é porque toda leitura produzirá uma gravação ao atualizar os timestamps. Isso diminui a vida do SSD.
Edite seu arquivo de configuração /etc/fstab (cuidadosamente - faça um backup para ter certeza de que quebrar sua configuração do fstab pode impedir que o sistema funcione):
cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Edite as opções de montagem para suas partições adicionando o texto noatime e nodiratime às linhas que definem sua raiz (/) e outras partições se você as tiver (/ home) - Nota: se você tiver um/home partição, comece com isso apenas mudar essa partição se você está preocupado em quebrar alguma coisa
# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2
Você precisará reinicializar sua máquina antes que essas alterações entrem em vigor
3) Minimizando gravações do sistema operacional e aplicativos
Supondo que você não esteja executando um servidor de produto de missão crítica, a maioria das pessoas não examinará os logs se algo der errado (especialmente porque erros sérios são raros para a maioria dos usuários do Ubuntu). Portanto, você pode configurar o Ubuntu para que todos os logs sejam gravados em RAM memória em vez do SSD.
Nota: faça as seguintes alterações apenas quando tiver instalado todos os softwares que usar (especialmente coisas como o servidor web Apache), caso contrário você poderá ter alguns problemas com diretórios ausentes em/var/log
Para obter informações sobre essa abordagem, consulte prolongando a duração do seu pendrive em ubuntu-eee.com
Abra /etc/fstab com um editor (supondo que você fez o backup do arquivo/etc/fstab)
gksudo gedit /etc/fstab
Adicione as seguintes linhas no final do arquivo fstab e salve:
# Uncomment these after all server based applications installed - eg. Apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0
Você precisará reinicializar sua máquina antes que essas alterações entrem em vigor
Veja também:
Geralmente eu não me incomodo - as preocupações com a vida SSD são exageradas. Você pode ler isto artigo detalhado sobre porque você realmente não deveria se preocupar . Em suma, o circuito dentro dos modernos SSDs gerencia o nivelamento de desgaste para você, e eles sabem como fazê-lo muito melhor do que você.
No artigo é um cálculo da vida de um SSD que está recebendo gravações em uma taxa contínua de 80M/s. A vida é 51 anos . Isso é baseado na tecnologia de 2007 - a vida do SSD será maior agora. E você quase certamente não escreve no seu SSD a 80M/s 24 horas por dia.
No entanto, a degradação do desempenho ao longo do tempo pode ser um problema e TRIM é a solução. Existem duas opções
Você tem que ativar o TRIM automático . (Basicamente, você adiciona a opção discard
às suas opções de montagem, desde que você esteja usando ext4.) Eu encontrei uma postagem no blog informando a opção de descarte diminui o seu sistema ao excluir arquivos .
Você pode ocasionalmente fazê-lo manualmente (ou em um cron job) usando fstrim . Se você tiver apenas uma partição, tudo o que você precisa fazer é:
Sudo fstrim /
Note que o fstrim só está disponível em 11.10 e mais recente. Para sistemas mais antigos, você precisará do script wiper.sh
. Eu encontrei o script em /usr/share/doc/hdparm/contrib/wiper.sh.gz
no meu sistema.
Se você está se perguntando, o problema que o TRIM resolve, como descrito pela Wikipedia , é:
Os SSDs armazenam dados em células de memória flash agrupadas em páginas, com as páginas (geralmente 4 kB cada) agrupadas em blocos (normalmente 128 páginas por bloco, totalizando 512 kB). As células de memória flash NAND só podem ser gravadas diretamente quando estão vazias. Se eles forem considerados como contendo dados, o conteúdo primeiro precisa ser apagado antes que uma operação de gravação possa ser executada de forma confiável. Em SSDs, uma operação de gravação pode ser feita no nível de página, mas devido a limitações de hardware, os comandos de exclusão sempre afetam blocos inteiros. Como resultado, a gravação de dados em mídia SSD é muito rápida, contanto que as páginas vazias possam ser usadas, mas diminuem consideravelmente, uma vez que as páginas anteriormente gravadas precisam ser sobrescritas . Uma vez que é necessário apagar as células da página antes que ela possa ser gravada novamente, mas somente blocos inteiros podem ser apagados, uma sobregravação iniciará um ciclo read-erase-modify-write: O conteúdo de todo o bloco tem que ser armazenado em cache antes de ser efetivamente apagado no meio flash, então a página sobrescrita é modificada no cache para que o bloco em cache esteja atualizado, e só então é o bloco inteiro (com página atualizada ) escrito no meio flash . Este fenômeno é conhecido como amplificação de escrita.
Existem vários pontos:
Alinhamento:
O que é frequentemente apontado é o direito alinhamento da partição. Isso deve ser igual ao tamanho do bloco do SSD. Jogue com segurança e torne suas partições alinhadas aos limites do MiB. Note que você não pode fazer isso com a ferramenta de partição do instalador do Ubuntu (que usa MB não MiB), mas você pode inicializar o live CD, usar o Gparted (que usa o MiB) e clicar em Instalar para usar as partições configuradas.
O agendador certo:
Um ponto importante é o scheduler que deve ser noop
. Você pode definir este agendador via kernelparameter elevator=noop
ou através de uma entrada echo noop > /sys/block/sda/queue/scheduler
em seu rc.local.
Mountflags:
Eu recomendaria noatime
e discard
Tmpfs
Colocar tmp em um disco virtual pode aumentar o tempo de vida do ssd. Para usar isso coloque a seguinte linha no seu fstab: none /tmp tmpfs defaults 0 0
Geralmente, se você quiser mergulhar mais fundo neste tópico, eu recomendaria this excelente wiki-article.
Curso de ajuste rápido para o seu SSD no Ubuntu:
sistema de arquivos
Arch wiki menciona poucas opções preferíveis para o sistema de arquivos SSD - um deles é instável, outros são ext * uns. Eu assumo ext4 é uma das melhores escolhas.
Nota: No caso de ext4 você pode querer usar a opção de montagem discard
.
fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0
/dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults,noatime,discard,user_xattr 0 2
/dev/sda3 /windows ntfs defaults,noatime,discard,umask=007,gid=46 0 0
Algumas coisas importantes aqui são:
swap
. Hoje em dia é necessário apenas para a hibernação, já que as máquinas modernas têm uma grande quantidade de RAM.noatime
e discard
. Info é aqui .agendador
Considere mudar do escalonador padrão, que na maioria das distribuições Linux é cfq (filas completamente justas), para o escalonador noop ou prazo final para um SSD. O uso do noop scheduler, por exemplo, simplesmente processa solicitações na ordem em que são recebidas, sem dar qualquer consideração sobre onde os dados residem fisicamente no disco. Esta opção é considerada vantajosa para SSDs, uma vez que os tempos de busca são idênticos para todos os setores no SSD.
Adicione seguinte para /etc/rc.local :
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
info
4) ativar o TRIM automático
Se o seu SSD suportar, você também deve ativar o TRIM automático (como descrito aqui )
O TRIM permite que um sistema operacional informe a um SSD quais blocos de dados não são mais considerados em uso e podem ser apagados internamente. O corte permite que o SSD manipule a sobrecarga de coleta de lixo, o que, de outra forma, reduziria significativamente as futuras operações de gravação para os blocos envolvidos, 1
No Ubuntu 14.04, foi adicionado um novo recurso ao pacote util-linux que corta os SSDs automaticamente, mas apenas os SSDs Intel e Samsung têm TRIM habilitado por padrão , porque alguns SSDs baratos podem até se compactar ao executar o TRIM.2 O conteúdo de /etc/cron.weekly/fstrim
no Ubuntu 14.04:
#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g. https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all
1https://en.wikipedia.org/wiki/Trim_%28computing%29
2Como está o Trim ativado?
Eu não adicionaria essa linha ao seu fstab, a pasta var/tmp serve para sobreviver às reinicializações e isso pode causar problemas para você.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
Quando eu configuro o novo sistema eu deixo toda a pasta tmp comentada desta forma, se acontecer alguma coisa eu posso verificar os logs e outras coisas. Então, uma vez que eu tenha a configuração principal do sistema, eu vou descomentar-los, mas eu nunca adiciono a linha acima, aqui está o que eu uso:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/apt tmpfs defaults,noatime 0 0
E se estou tendo algum problema com o meu sistema, comento-os para poder verificar tudo, mesmo após uma reinicialização ou reinicialização forçada após um bloqueio.
Além disso, você não precisa de um nodiratime, a opção noatime cuida dos dois por si só.
Quanto ao TRIM, se o seu hw/sw suportá-lo, é uma obrigação, não uso descarte no fstab. Eu crio um cron diário, porque meu PC está sempre ligado, fazendo isso:
gksu gedit /etc/cron.daily/trim
Então adicione isto ao arquivo e salve (Se você não tem uma partição/home separada no ssd, ou tem outras partes que estão no ssd você deve ter a idéia de como modificar isso:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
Em seguida, torne o arquivo executável por:
Sudo chmod +x /etc/cron.daily/trim
Eu também edito meu rc.local assim:
gksu gedit /etc/rc.local
Adicione isto acima de "exit 0" e abaixo do último #:
# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done
Você pode copiar e colar a partir daqui para que não haja erros, para o leigo parece fora do whack, não é.
Eu também li que deixando 10% de sua unidade ssd não formatada pode ajudar a prolongar a vida, que continua a ser visto. Eu não li muito sobre isso, então não posso garantir se faz sentido fazê-lo.
Este é o melhor guia em todo o mundo, ele não percorreu o Google por um dia e, em seguida, apresentou um guia, você deve verificar isso AQUI
Há algumas boas informações Como ajustar e otimizar o SSD para o Ubuntu, Linux Mint de http://namhuy.net/1563/how-to-Tweak-and-optimize-ssd-for-ubuntu-linux-mint .html você pode estar interessado em
Use o pré-carregamento
Para instalar o pré-carregamento no Ubuntu, Linux Mint ou distribuições baseadas no Debian
# apt-get update && apt-get install preload
Desligue o seu swap
Para alterar a configuração de swappiness:
$ su -
# nano /etc/sysctl.conf
E adicione essa linha no arquivo sysctl.conf.
vm.swappiness = 10
É claro que /var/tmp
não deve estar no tmpfs, pois, por definição, seu conteúdo precisa ser preservado além das reinicializações:
Ok "longa história curta":
Formate como ext4
durante a instalação e crie um pequeno swap ~ 1 GB. Depois de instalar, edite fstab com Sudo gedit /etc/fstab
e adicione a seguinte linha
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Isso criará uma ramdrive para seus arquivos temporários, o que diminuirá o tempo de uso. Adicione também noatime,nodiratime,discard
à sua linha ext4 após os padrões. Isso também diminuirá o desgaste e ativará a função TRIM. Salve e reinicie.
O no-break é obrigatório. No arquivo /etc/sysctl.conf
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
Encontre o daemon do arquivo de configuração, geralmente /etc/syslog.conf
или /etc/rsyslog.d/
e todos os caminhos do formulário /var/log/
mudam escrevendo um sinal de menos ("-") na frente das formas.Antes de mail.err
/var/log/mail.err
Depois demail.err -/var/log/mail.err
use FS btrfs
e use a opção -o ssd
Como ajustar e otimizar o SSD para o Ubuntu, Linux Mint
Ativar TRIM
TRIM (comando Trim permite que um sistema operacional saiba quais blocos SSD não estão sendo usados e podem ser limpos)
Faça backup do fstab primeiro para o caso de algo errado acontecer.
# cp /etc/fstab ~/fstab.bk
Editar arquivo fstab
# nano /etc/fstab
Adicione o descarte às suas unidades ou partições ssd, após ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime
noatime e nodiratime são opções de montagem no linux para o sistema de arquivos linux. o noatime desativa as atualizações do atime no sistema de arquivos e o nodiratime desabilitará as atualizações do atime no sistema de diretórios. A adição de noatime e nodiratime reduzirá bastante a carga de ssd, o que significa ganhos de desempenho.
Editar arquivo fstab
# nano /etc/fstab
Adicionar noatime, nodiratime às suas unidades ssd ou partições, após ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Eu sugiro colocar apenas as coisas que são lidas no momento da inicialização no SSD qualquer talvez aplicativos que exigem muito tempo para carregar.Data e logs e outras coisas não críticas que gostaria de localizar em um disco rígido normal.Also você pode configurar o seu Ubuntu para carregar apenas um grande initramfs do SSD no momento da inicialização e não gravar as alterações no ssd.Isso tem o benefício de que as alterações nessa partição não são persistentes, o que é como uma proteção para o seu sistema de inicialização.Para você precisaria de muito mais RAM claro.
Eu gostaria, por exemplo coloque as partições /,/etc,/usr,/boot,/lib 32/64 no SSD enquanto sth como
/ opt,/bin,/sbin,/root,/home e até mesmo trocar (aumentar RAM !!!) no HDD
Wikipedia diz:
O kernel do Linux suporta a função TRIM a partir da versão 2.6.33. O sistema de arquivos ext4 é suportado quando montado usando o parâmetro "discard". Os utilitários de disco mais recentes (e, portanto, o software de instalação que os utiliza) também aplicam o alinhamento adequado da partição.
Para backups, existem várias maneiras, das quais a mais simples é (r) sync plus cron job.