Como otimizar o sistema operacional para SSDs?

143

Quais passos devem ser tomados 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?

    
por Lars Haugseth 06.08.2010 / 16:03

13 respostas

105

Eu usei com sucesso várias técnicas diferentes para melhorar a maneira como o Ubuntu usa o dispositivo de armazenamento, seja em estado sólido ou tradicional.

Para SSDs, você procura minimizar o número de vezes que a unidade é gravada, já que as leituras não devem adicionar desgaste à unidade.

1) Gerencie o arquivo de troca

Se você não hibernar seu computador e tiver uma ampla memória RAM para rodar todos os seus aplicativos, então, teoricamente, você não precisa de 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) Não há gravações para leitura de registros de data e hora (adequado para SSDs e discos rígidos)

Montar suas partições com as opções noatime e nodiratime interromperá gravações de timestamp quando você ler arquivos e pastas. Geralmente, essas gravações de registro de data e hora 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 cada leitura produzirá uma gravação ao atualizar os timestamps. Isso diminui a vida útil 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 uma partição / home , comece com isso apenas mudando a 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 registros sejam gravados na memória RAM e não no SSD.

Nota: faça as seguintes alterações somente quando tiver instalado todos os softwares que você vai usar (especialmente coisas como o servidor web Apache), caso contrário você pode ter alguns problemas com diretórios ausentes em / var / log

Para informações básicas sobre essa abordagem, consulte prolongar a vida útil do seu pendrive na ubuntu- eee.com

Abra / etc / fstab com um editor (supondo que você tenha feito 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:

por jr0cket 08.08.2010 / 15:09
90

Vida SSD

Geralmente eu não me incomodo - as preocupações com a vida SSD são exageradas. Você pode ler este artigo detalhado sobre por que 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, há um cálculo da vida útil de um SSD que recebe 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.

Desempenho SSD

No entanto, a degradação do desempenho ao longo do tempo pode ser um problema, e TRIM é a solução. Existem duas opções

  • TRIM automático / online, também conhecido como descarte
  • manual TRIM

Você precisa ativar o TRIM automático . (Basicamente, você adiciona a opção discard às suas opções de montagem, desde que esteja usando o ext4.) Encontrei uma postagem no blog informando que a opção de descarte diminui o seu sistema ao excluir arquivos .

Você pode ocasionalmente fazer isso 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 (normalmente 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 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 diminua consideravelmente, uma vez que as páginas gravadas anteriormente precisam ser sobrescritas . Como é necessário apagar as células da página antes de poder 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 Para ser armazenado em cache antes que ele seja efetivamente apagado na mídia flash, a página sobrescrita é modificada no cache para que o bloco em cache esteja atualizado e somente então o bloco inteiro (com a página atualizada) é gravado na mídia flash . Este fenômeno é conhecido como amplificação de escrita.

    
por Hamish Downer 08.08.2010 / 21:03
20

Existem vários pontos:

Alinhamento:

O que é frequentemente apontado é o alinhamento correto 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 MiB) e clicar em Instalar para usar as partições que você configurar. / p>

O agendador certo:

Um ponto importante é o programador que deve ser noop . Você pode definir esse agendador via kernelparameter elevator=noop ou por meio de uma entrada echo noop > /sys/block/sda/queue/scheduler em seu rc.local.

Mountflags:

Eu recomendaria noatime e discard

Tmpfs

Para colocar o tmp em um ramdisk 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 recomendo este excelente artigo wiki.

    
por Sebastian Rühl 03.02.2011 / 22:28
16

Curso de ajuste rápido para o seu SSD no Ubuntu:

sistema de arquivos

Arch wiki menciona algumas opções preferíveis para o sistema de arquivos SSD - um deles é instável, outros são ext *. Presumo que ext4 seja uma das melhores escolhas.
Nota: No caso de ext4 você pode querer usar a opção discard mount.

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:

  • Para sistemas com & gt; = 2 GB de memória, a localização / tmp na RAM é desejável.
  • Não há swap partition. Hoje em dia é necessário apenas para hibernação, já que as máquinas modernas têm uma quantidade muito grande de RAM.
  • noatime e discard opções. As informações são aqui .

programador

Considere a mudança do agendador padrão, que na maioria das distribuições Linux é cfq (filas completamente justas), para o agendador noop ou prazo 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 o seguinte a /etc/rc.local :

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

info

um dois

    
por Andrejs Cainikovs 09.12.2011 / 18:24
8

4) ativar o TRIM

automático

Se o seu SSD for compatível, você também deve ativar o TRIM automático (conforme descrito aqui )

    
por Uli 31.12.2010 / 00:37
3

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, deixo toda a pasta tmp comentada desta forma, se algo acontecer, posso verificar os logs e outras coisas. Então, uma vez que eu tenha a configuração principal do sistema, eu irei comentá-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 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, eu não uso descartar no fstab. Eu crio um cron diário, porque meu PC está sempre ligado, fazendo isso:

gksu gedit /etc/cron.daily/trim

Em seguida, adicione isso ao arquivo e salve (Se você não tiver uma partição / home separada no ssd, ou tiver 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 "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 deixar 10% da sua unidade ssd sem formatação pode ajudar a prolongar a vida, que ainda precisa 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 procurou o Google por um dia e, depois, criou um guia, você deve conferir AQUI

    
por JohnRB 29.07.2013 / 00:53
3

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 da coleta de lixo, o que de outra forma retardaria significativamente as futuras operações de gravação para os blocos envolvidos, com antecedência. 1

No Ubuntu 14.04, um novo recurso foi adicionado ao pacote util-linux que corta os SSDs automaticamente, mas somente os SSDs Intel e Samsung têm o TRIM habilitado por padrão, porque alguns SSDs baratos podem até mesmo tijolo se ao executar 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

1 link
2 Como Trim está ativado?

    
por karel 25.12.2013 / 02:52
2

É claro que /var/tmp não deve estar no tmpfs, pois, por definição, o conteúdo precisa ser preservado além das reinicializações:

  • Diferenças entre o TMP e o VarTMP
por user95602 09.10.2012 / 18:12
2

Ok "longa história curta":

  1. Sim. É como um disco rígido normal. Aqui é uma boa visão geral.
  2. Alguns extras especiais que eu cobrirei.
  3. Muito bom. Eu uso com um servidor.

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 duração. 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.

    
por gajdipajti 24.04.2012 / 00:06
2

Existem algumas boas informações Como ajustar e otimizar o SSD para o Ubuntu, Linux Mint de link 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 do swappiness:

$ su -
# nano /etc/sysctl.conf

E adicione essa linha no arquivo sysctl.conf.

vm.swappiness = 10
    
por Sue Russell 09.11.2013 / 19:58
2

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/ alteram escrevendo um sinal de menos ("-") na frente das formas. mail.err

/var/log/mail.err

Após o% mail.err -/var/log/mail.err

use FS btrfs e use a opção -o ssd

Mais link

    
1

Como você ajusta e otimiza 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 aos seus drives 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

Adicione noatime, nodiratime às suas unidades ou partições ssd, após ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
    
por user223973 24.12.2013 / 23:44
0

Eu sugiro colocar apenas as coisas que são lidas no momento da inicialização no SSD quaisquer aplicativos que exigem muito tempo para carregar.Data e logs e outras coisas sem importância que eu gostaria de localizar em um disco rígido normal.Também você pode configurar o seu ubuntu para carregar apenas um grande initramfs do SSD no momento da inicialização e não gravar 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 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 a RAM !!!) no disco rígido

Wikipedia diz:

  

O kernel do Linux suporta a função TRIM, começando com a 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 faz uso deles) 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.

    
por Michael K 09.12.2011 / 17:26