Como esvaziar swap se houver RAM livre? - SobreLinux
#1 resposta do SpamapS (324 votos)
#2 resposta do popey (142 votos)
#3 resposta do Elijah Lynn (113 votos)
#4 resposta do Scott Severance (44 votos)
#5 resposta do Erigami (23 votos)
#6 resposta do Rory (1 votos)
Quando eu abro um aplicativo de uso intensivo de memória RAM (conjunto do VirtualBox com 2 GB de RAM), geralmente é usado algum espaço de troca, dependendo do que eu tenho aberto no momento.
No entanto, quando eu saio do último aplicativo, os 2GB de RAM são liberados, mas o mesmo uso do espaço de swap permanece.
Por exemplo, agora, cerca de duas horas depois de ter fechado o VirtualBox, eu tenho 1,6 GB de RAM livre e ainda 770 MB de swap.
por jfoucher 06.08.2010 / 08:43
Só porque swap é alocado, não significa que ele está sendo 'usado'. Embora programas como monitor de sistema e top mostrem que parte do seu espaço de swap está sendo alocado (no seu exemplo 770MB), isso não significa que o sistema está ativamente trocando de entrada / saída.
Para descobrir se algo está sendo alternado, você pode usar o comando vmstat . Deixe alguns segundos para acalmar e observe as colunas si (swapin) e so (swapout). Se nada está acontecendo, então não há razão para se preocupar.
Aqui está a saída da execução de vmstat 1 , onde você pode ver que minha máquina não está trocando nada.
por popey 06.08.2010 / 12:04
O kernel Linux subjacente ao Ubuntu irá automaticamente "trocar" essas páginas do disco para a RAM conforme necessário, então, em geral, eu diria apenas deixar acontecer naturalmente.
No entanto, se você realmente acha que precisa forçá-lo, (eu posso ver um cenário onde você gostaria de saber que o sistema responderá mais tarde), você pode momentaneamente desabilitar e reativar o swap
por SpamapS 06.08.2010 / 08:47
Você também pode definir seu valor "swappiness" do padrão de 60, desta forma a troca não crescerá tão grande para começar. Por que o padrão de frete é definido para 60 quando o valor recomendado é 10 me deixa perplexo. Do Ubuntu SwapFAQ :
Ao alterar esse valor para 10 ou até 0, você pode adicionar um aumento de velocidade significativo e perceptível a um sistema mais antigo com uma unidade lenta. Configurar este valor para 0 não desativa a troca para o kernel Linux 3.4 e inferior, mas com 3.5+ isso significa que você desejará usar um valor de 1 se quiser mantê-lo na configuração mais baixa *.
Não vejo razão para não definir isso como 0, já que qualquer disco rígido é mais lento que a RAM. Eu tenho 8 núcleos virtuais, um rápido SSD & amp; 8 GB de memória e meu swap está configurado para 0. A partir deste momento eu tenho 3 máquinas virtuais rodando, meu uso de memória é 7.1 de 7.7 GB, meu swap usado é de apenas 576KB de 952MB e todos os sistemas estão rodando sem problemas!
swappiness = 0 diz ao kernel para evitar a troca de processos da memória física pelo maior tempo possível
Para definir temporariamente a troca para 0 ( como sugerido pelo SpamapS :
Isto irá esvaziar sua troca e transferir toda a troca de volta para a memória. Primeiro, certifique-se de ter memória suficiente disponível, visualizando a aba de recursos do gnome-system-monitor, sua memória livre deve ser maior do que o seu swap usado. Este processo pode demorar um pouco, use o gnome-system-monitor para monitorar e verificar o progresso.
* Com a versão do kernel 3.5+, a configuração de swappiness para 0 é totalmente desativada e uma configuração de 1 é recomendada se você quiser o menor algoritmo de swappiness. fonte: link
por Elijah Lynn 11.06.2012 / 16:10
Eu descobri que o swap de esvaziamento pode ajudar muito em sistemas com discos lentos e RAM limitada. Naturalmente, como já mencionado, a maneira de fazer isso é executar sudo swapoff -a; sudo swapon -a . O problema aqui é que, se houver RAM insuficiente, isso causará todos os tipos de problemas.
Eu escrevi um script que chamo de toggle_swap e que funcionou para mim nos últimos anos. Ele verifica se há RAM livre suficiente antes de desabilitar a troca. Aqui está:
por Scott Severance 25.12.2011 / 17:35
Depois de curtir swappiness por alguns dias, cheguei à conclusão de que o kernel deveria ser deixado para seus próprios dispositivos. Ele sabe o que está fazendo e está otimizado para oferecer a melhor experiência.
por Erigami 06.08.2010 / 18:34
Não afeta o desempenho se o espaço de troca estiver ocupado. A única penalidade de desempenho é que o material está entrando / saindo do swap. Se nada estiver sendo trocado / trocado, você não precisa se preocupar com nada.