Como fazer uma boa suposição para o tamanho da partição de troca ao usar o tmpfs?

2

Eu tenho um SSD, então o espaço é um recurso escasso. Eu gostaria de usar o mínimo possível para swap. Na verdade, eu passei o último ano completamente sem uma partição swap (o computador tem 6 GB de RAM).

Estou planejando uma reinstalação limpa e quero tentar algumas coisas novas. Entre eles, quero reduzir a carga de gravação no SSD, colocando os diretórios do sistema de gravação pesada em tmpfs. Especificamente, quero colocar /tmp , /var/tamp e /var/tmp/cache na RAM. Obviamente, isso aumentará meu uso de RAM e, em algum momento, talvez eu precise trocar depois de tudo.

Ainda não registrei os tamanhos de diretório temporários e o uso de RAM no passado e não quero instalar as ferramentas de log e esperar com a reinstalação até obter dados suficientes. Quais são as minhas melhores opções para adivinhar um tamanho de partição swap adequado? Quão sensato será esse palpite? Acabei de sair atirando no escuro ou contando com diretrizes generosas do tipo "1.5x seu tamanho de RAM"?

Eu faço um desligamento completo toda noite, então espero que os diretórios temporários não fiquem muito grandes em tamanho.

    
por rumtscho 31.12.2011 / 06:56

2 respostas

4

Você tem três problemas quando se trata de trocar espaço.

Primeiro, com espaço de troca insuficiente, algumas cargas de trabalho simplesmente não são possíveis de serem executadas. Se um programa precisar de mais memória que a RAM física disponível, ele simplesmente não poderá ser executado sem swap.

Em segundo lugar, com pouco espaço de troca, seu computador pode não conseguir liberar coisas que nunca são acessadas da RAM física. Muitas vezes, algum pedaço de memória nunca será acessado, mas o sistema operacional não pode provar isso. Então, não pode simplesmente liberar a memória. Sem swap suficiente, essa informação fica presa na RAM para sempre, nunca sendo acessada. Muitos processos sujam um monte de memória na inicialização que eles nunca tocam.

Por fim, com um espaço de troca muito baixo, sua decisão de comprometer a VM ou não pode ter consequências drásticas. Se você não permitir que o sistema supercomprima a VM, você acabará recusando operações que na verdade não usam muita memória. (Imagine se um processo grande chamar fork . Pode estar prestes a chamar exec , mas a menos que você permita a supercomprometimento, o SO deve recusar o fork se ele não tiver RAM + troca suficiente para o novo processo suja toda página mapeada gravável.) Se você permitir que o sistema seja supercomprometido e não tenha RAM + swap suficiente para uma carga de trabalho atípica, poderá encontrar processos sendo finalizados sem cerimônia.

Pessoalmente, supondo uso típico, aloquei 2 GB para swap e certifique-se de que permissão razoável seja permitida .

    
por 31.12.2011 / 07:39
2

Se você não está fazendo nenhuma tarefa intensiva de memória, então um computador com 6G de RAM pode fazer sem swap (aviso: eu sou louco).

Montar / tmp (seus / var siblings) como tmpfs é uma prática muito boa. Para o meu netbook com 1G RAM, sem swap, mantive 100M / tmp tmpfs e nunca dei problema (a menos que você queira arrancar coisas de lá como caches coisas, o que as pessoas normalmente não querem).

Se alguma coisa estragar, tudo que você precisa editar é o / etc / fstab.

A paranóia é boa, mas suas chances de perder dados menos como apenas os diretórios tmp / cache estão na memória, os dados reais são gravados no disco de qualquer maneira.

    
por 31.12.2011 / 07:10