Permitir, mas desencorajar a troca no Ubuntu

Permitir, mas desencorajar a troca no Ubuntu

Existem muitas postagens sobre como desativar completamente a troca do Ubuntu. É possível dizer ao Ubuntu para permitir, mas desencorajar o uso de swap?

Instalei o Xubuntu em um laptop com 1 Gb de RAM e um pequeno SSD, transformando-o em um servidor Samba. Na pior das hipóteses, a memória livre ainda pode acomodar todos os dados de um arquivo de troca:

~$ free -m
            total       used       free     shared    buffers     cached
Mem:           991        696        294         17         66        175
-/+ buffers/cache:        454        536
Swap:         1952        107       1845

Quero desencorajar a troca quando há memória livre disponível, porque a troca faz muitas gravações de IO que degradam o SSD rapidamente.

É possível priorizar a RAM em vez do swap ou a escolha é limitada a "swap on/off"? Quais efeitos colaterais isso causa, se houver?


Obrigado por apontar as respostas existentes, elas são relevantes, mas difíceis de encontrar. O usuário deve saber 90% da resposta para pesquisar "como configurar o swappiness". Pergunta respondida. Espero que este cabeçalho da pergunta ajude na indexação.

Responder1

A menos que você tenha um SSD bem antigo, os SSDs meio modernos podem lidar com muitas gravações, então você realmente não precisa fazer nada se tiver um SSD meio moderno.

Se você ainda deseja reduzir a troca, reduza swappiness(o valor mínimo no Linux moderno é 1, não 0, se você quiser fazer tudo, embora 10seja o mínimo recomendado e 60seja o padrão do Ubuntu). Isso pode tornar as coisas muito mais lentas (a ponto de o sistema poder congelar por um bom tempo se estiver sob forte pressão de memória) quando a troca finalmente começar, já que pouco ou nada será trocado antes do tempo.

Para definir swappiness, substitua 10abaixo pelo swappinessque você deseja, 1para 100, onde os valores mais baixos são trocados com menos frequência. Abra um terminal (pressione Ctrl+ Alt+ T) e execute:

sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf

Agora, adicione uma linha na parte inferior (ou se já houver uma vm.swappinesslinha, edite-a):

vm.swappiness = 10

Pressione Ctrl+ Opara salvar. Pressione Ctrl+ Xpara sair nano. Feche a janela do terminal.

informação relacionada