Com um SSD, preciso alterar meu swappiness para aumentar a vida útil do SSD?

35

Encontrei este artigo que inclui a seguinte sugestão:

Swap e swappiness

Eu mantive minha partição swap no disco rígido antigo. A troca do SSD seria mais rápida, mas também reduziria a vida do SSD.

Meu sistema tem muita memória, então eu também reduzi o valor de swappiness para 0 para dizer ao Ubuntu para trocar somente quando absolutamente necessário. Eu fiz isso adicionando a linha vm.swappiness = 0 ao /etc/sysctl.conf.

É verdade que configurar o swappiness para zero aumentará a vida útil do meu SSD? Não consigo encontrar referências a isso em nenhum outro lugar.

8128
fonte

Respostas:

30

Reduzir a troca para 0 significa que o sistema operacional começará a usar o SSD apenas para troca quando não houver mais RAM disponível.

Teoricamente, isso pode aumentar a vida útil do SSD, porque ele sofrerá menos gravações. Depende se ele praticamente aumenta a vida útil do SSD:

  • O Linux raramente usa a troca (especialmente em comparação com o Windows), mesmo com valores mais altos de troca, portanto, essa configuração provavelmente não alterará o comportamento da troca em sistemas com bastante RAM em comparação com o uso da RAM. Se você tiver pouca memória RAM, a troca poderá ocorrer com bastante frequência com o valor padrão 60, nesse caso, a diminuição da troca provavelmente terá um impacto significativo no limite do ciclo de gravação do SSD.

  • A resistência de gravação do SSD ainda é bastante alta para um uso simples do consumidor, pelo menos para SSDs baseados em MLC . Eles dizem que os atuais SSDs baseados em MLC podem tolerar ca. 3000-5000 ciclos de gravação antes que eles se esgotem. O cálculo com o limite de 3000 significa que um SSD de 128 GB com gravações diárias de 10 GB funcionará bem por cerca de 38000 dias, isso significa ca. 100 anos. Se você tiver um SSD maior, é claro, isso se desgastará muito mais tarde. Portanto, é muito improvável que o seu SSD morra por causa do desgaste das células. (Obviamente, se você usar seu SSD em um ambiente corporativo / servidor, as gravações diárias serão muito mais altas, mas em ambientes corporativos, geralmente são usados ​​SSDs baseados em SLC .)

  • Esse limite do ciclo de gravação é tão alto que os fabricantes de SSD (inicialmente SAMSUNG) começaram a fabricar SSDs baseados em TLC para os consumidores, o que só pode tolerar ca. 1000 ciclos de gravação, mas são mais baratos. Essas empresas afirmam que mesmo o limite do ciclo de gravação desse SSD durará mais do que o tempo em que o produto deve ser usado. (É improvável que, em 2024, ainda estaremos usando nossos SSDs de 128 GB). Embora se você tiver um SSD baseado em TLC e gravar com freqüência nessa unidade, por exemplo, 50 GB / dia, a diminuição do valor de swappiness provavelmente terá um efeito significativo. na vida útil do seu SSD.
  • Aqui está um tópico gigantesco no qual os entusiastas testavam a resistência do SSD escrevendo constantemente para eles. Embora o método de teste provavelmente não esteja totalmente correto, seus resultados são impressionantes e reconfortantes.

Para resumir: em teoria, sim, diminuir a troca resultará em uma vida útil mais longa do SSD, na prática provavelmente não. Mas se você tem um SSD baseado em TLC e tem pouca memória RAM e geralmente escreve frequentemente no SSD, também pode ter um efeito prático.

Eu tenho um SSD de 128 GB baseado em MLC e uso principalmente o meu sistema para escritório / navegação e tenho bastante RAM em comparação com o uso de RAM, para que meu SSD não sofra muita carga de gravação (embora minha máquina esteja 24/7). Mas como eu não preciso trocar e é muito fácil diminuir a permuta que eu defini para 0 quando instalei meus SSDs, por que não fazer isso? (Na verdade, defino swappiness como 0 em todas as minhas máquinas, mesmo em máquinas que possuem apenas HDDs.)

Você pode verificar o quanto de gravação seu SSD sofreu durante sua vida útil smartctl, procure a linha com Total_LBAs_Written, isso mostrará quanto setores 512b foram gravados no SSD. (Sim, eu sei que os SSDs possuem blocos fisicamente de 4K, não 512b, mas a SMART ainda diz: Sector Size: 512 bytes logical/physicale com 512 blocos, obtenho resultados comparáveis ​​à tune2fs -lsaída de gravações ao longo da vida.) Portanto, multiplique esse número por 512 e você obtém as gravações em bytes ou, resumidamente:

sudo smartctl -a /dev/sda | grep Total_LBAs_Written | awk '{print $10*512/1024/1024/1024 " GiB"}'

será impresso em GiBs para / dev / sda. (Apenas altere o nome do dispositivo para o nome do seu SSD.) Meu SSD de 128 GB sofreu ca. Gravações de 800 GB em pouco mais de um ano, ou seja, apenas 7 ciclos de gravação usados ​​no 3000.

falcoeiro
fonte
Com um sistema de arquivos, é possível TRIM para reduzir a amplificação de gravação. Existe um equivalente para uma partição SWAP?
Bryce
Essa resposta parece supor que "troca" varia de 0 a 100, com zero, sem troca (e 100 sem RAM?). Porém, outra resposta entra em mais detalhes sobre o swappinessvalor, indicando que o número varia de 0 a 200 e representa um peso relativo para diferentes tipos de troca.
palswim
7

Toda essa conversa sobre o desgaste de SSDs é "adivinhação". Eu tinha os mesmos sentimentos, mas comecei a usá-los comercialmente. Eu tenho um dos grupos de oráculos mais rápidos da costa leste. Há 3 anos, instituímos SSDs para todo o armazenamento e sistemas de arquivos temporários. Fazemos bilhões de operações de gravação / dia nos SSDs. Depois de 3 anos, ainda não chegamos a um ponto de queima de 10%. Se eu puder fazer isso comercialmente, eles nunca se desgastarão em uma situação residencial. Então, implementei uma solução SSD especificamente para trocar espaço na minha estação de trabalho Linux e no BAM !!!

Portanto, sua milhagem pode variar, mas o SSD é o caminho a seguir em todos os sentidos.

Dave

TekOps
fonte
Os SSDs destinados a servidores podem demorar mais gravações do que os (mais baratos) destinados aos consumidores.
314 jarno
1
Entendido, mas eu tenho SSDs de consumidor instalados em estações de trabalho que funcionam 24x7 implantadas em toda a empresa e fazemos backup dos deltas a cada dois dias, mas não tivemos uma única falha em dois anos. Lembre-se de que o MTBF para uma bandeja giratória física é de 3 anos e, na minha experiência em sistemas de venda / manutenção por mais de 25 anos, isso é bastante preciso. Os SSDs superam todas as outras opções, comerciais ou de consumo.
TekOps
3

Sim . Você precisa alterar a swappiness para aumentar a vida útil do SSD.

Swappiness permite controlar quanto arquivo de troca está sendo usado. Os valores de troca podem ser alterados de 0 a 100. Quanto maior o valor de troca, mais o kernel tentará usar o espaço de troca, mais baixos os valores de troca significa que o kernel usará menos ou nenhum espaço de troca, dependendo da nossa configuração.

O valor padrão de swappiness de é 60, se você tiver RAM suficiente, evite usar o espaço de troca que grava e lê no seu SSD, mas em um HDD. Para sistemas com 4 GB ou mais de RAM, tente reduzir o uso de troca alterando as configurações de troca para entre 10 e 0, com o arquivo de troca em um disco rígido.

A execução de um espaço de troca exige muito E / S de disco e isso é realmente ruim para um SSD. Um SSD pode lidar com tantas gravações antes de ficar ruim e você é forçado a comprar outra unidade. Portanto, se possível, mova seu espaço de troca para uma unidade secundária giratória ... longe do SSD.

Uma unidade de estado sólido é desgastada relativamente rapidamente por ações de gravação. Especialmente as gerações mais antigas de SSDs eram vulneráveis ​​nesse aspecto, mas, em menor grau, ainda é o caso das novas gerações.

Você pode criar uma nova partição em um novo disco ou apenas criar um arquivo de troca; criar uma nova partição quase sempre resultará em um desempenho muito melhor.

Se você não tiver uma unidade alternativa para a qual mudar, poderá alterar uma configuração que só permitirá a troca quando a RAM física estiver 100% cheia, o que diminuirá a carga no seu arquivo de troca e ajudará o seu SSD. Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o (s) comando (s) abaixo:

echo 0 > /proc/sys/vm/swappiness

O desgaste do SSD tem a ver com ciclos de gravação

Uma unidade de estado sólido é desgastada relativamente rapidamente por ações de gravação. Especialmente as gerações mais antigas de SSDs eram vulneráveis ​​nesse aspecto, mas, em menor grau, ainda é o caso das novas gerações.

Use Trim

TRIM é uma vantagem que você usa com SSDs. Ele roda em software e se comunica com o controlador SSD, informando quais 'blocos' não são mais necessários pelo sistema de arquivos e podem ser limpos e substituídos com segurança. Isso realmente não resultará em uma melhoria de desempenho, mas aumentará a vida útil do seu SSD.

Fontes: Linux SSD Tweaks & How-to para otimizar seu SSD

Mitch
fonte
Eu gostaria de saber o que está errado? O OP perguntou se ele precisa alterar sua troca para aumentar a vida útil do SSD, e a resposta é sim, ele precisa alterar a troca.
Mitch
Entendo que as versões mais recentes do Ubuntu usam automaticamente o TRIM para SSDs.
Paddy Landau
O Ubuntu mais recente usa o TRIM apenas para determinados modelos de SSDs. @PaddyLandau
Bryce
2

É verdade que configurar o swappiness para zero aumentará a vida útil do meu SSD?

Isso faria com que o Linux movesse os blocos de memória com menos frequência para a partição swap. A gravação no swap normalmente usa ciclos de gravação se o seu swap estiver no SSD. Lembre-se de que a troca é usada apenas quando necessário e, se você tiver RAM suficiente, poderá ser melhor sem ela (a menos que queira hibernação, mas isso é outro problema).

Os efeitos dessas ações podem variar, mas fazer isso apenas para salvar alguns ciclos de gravação no SSD está fazendo errado. Os SSDs modernos (a partir de 2012 em diante) têm muitos ciclos de gravação e o desempenho pode ser reduzido para seus aplicativos quando você estiver quase gastando toda a sua RAM. Você usa mais ciclos de gravação durante a instalação de programas do que a troca devida. Lembre-se, novamente, que a troca é usada apenas quando é necessária por padrão.

Se você está preocupado com os ciclos de gravação de SSD usados ​​para troca, você pode remover / desativar a troca completamente se tiver RAM suficiente e ativar apenas uma troca temporária em um disco rígido em vez de mexer com a troca. Essa seria a melhor rota.

Braiam
fonte
0

Eu recomendo que você altere a configuração do swappiness para um valor mais baixo, o melhor é "0" se você tiver memória / ram suficiente para o seu sistema com 4 GB de ram ou mais. Mesmo que o swappiness em 10 com sistema ram alto, eu quase não vi o ubuntu colocar nada na partição swap, já que quase tudo já está no ram.

Eu fiz uma pequena pesquisa no google e encontrei esta página http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html

pode ajudá-lo a ajustar e otimizar o SSD para o seu sistema Ubuntu funcionar com mais eficiência e manter o seu ssd ativo por mais tempo

Damon Phillips
fonte
0

Mudar a swappiness pode não ter realmente um impacto. Nós jogamos muito com ele em sistemas com pouca memória RAM e queremos enviar o máximo possível para o SSD e isso realmente causou pouco impacto, os itens restantes na memória (o que significa que eles são necessários). Este pode ser um ponto discutível.

TekOps
fonte
0

Gostei da ideia de verificar a smartctlsaída, no entanto, meu código é um pouco mais compacto. Eu nunca entendi por que as pessoas simplesmente não sabem que awktem a grepcapacidade embutida nele.

sudo smartctl -a /dev/sdb | awk ' ($0 ~ /Total_LBAs_Written/) {print ($10*512)/(1024^3) " GiB"}'

Embora este seja o código que eu uso:

sudo smartctl -a ${device} | awk ' ($0 ~ /Total_LBAs_Written/) { if (($10*512)/(1024^3) > 1000) { msg="TiB"; size=($10*512)/(1024^4); } else { msg="GiB"; size=($10*512)/(1024^3); }; printf "\nThis device has had %.2
f %s written to it.\n",size,msg; }'
blake private_last_name
fonte